node.js - mongodb 4.0.1 ECONNREFUSED 在开发计算机上的 Node.js 中工作

标签 node.js mongodb

我有一个运行 MongoDB 4.0.1 和 Docker 版本 17.03.2-ce 的个人 AWS 服务器,构建 f5ec1e2 我刚刚获得了最新版本的node.js (10.9)

我可以使用 Compass 连接、查看和编辑 MongoDB 上的文档。

当我在开发计算机上运行 Node.js 时,我可以使用 postman 来获取和发布。 当我构建 docker 容器并在 AWS docker postman 上运行它时,返回 ECONNREFUSED。

//index.js
const express = require('express');
const cors = require('cors');

// set up express app
const app = express();
app.use(cors());
app.use(express.json());

//initialize routes  - set router to 
app.use('/database', require('./routes/recipes'));    

// listen for requests
const PORT = 4000;
const HOST = '0.0.0.0';
app.listen(PORT, HOST, function () {
    console.log('now listening for requests');
});


//recipes.js
const express = require('express');
const router = express.Router();

const MongoClient = require('mongodb');
const url = 'mongodb://localhost:27017';
//const url = 'mongodb://localhost/local';

// get a list of recipes
router.get('/recipes', function (req, res) {
...

最佳答案

将 localhost 替换为 AWS 私有(private) IP 地址,而不是公共(public) IP 地址或公共(public) url。

const url = 'mongodb://localhost:27017';

关于node.js - mongodb 4.0.1 ECONNREFUSED 在开发计算机上的 Node.js 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52018756/

相关文章:

node.js - Passport + Sequelize 不保存 req.user

javascript - Express 没有找到它期望的 redis 结果

node.js - Mongoose 地理查询未返回正确的结果

mongodb - 在 Mac 上从本地 docker 镜像连接到 meteor mongo

node.js - 为什么我无法从nodejs向我的mongodb数据库发出任何请求

node.js - NodeJS base64 图像编码/解码不太工作

javascript - 如何在 Next.js 的事件页面上设置链接组件的样式

c# - 快速导入 MongoDb

javascript - 如何使用用户输入的关键字在 Node.js 中执行 Twitter API 搜索

javascript - 使用 mongodb 保存具有 Node.js 异步特性的多个数据