mongodb 4.0.1 Econrefused在dev计算机上的node.js中工作

mongodb 4.0.1 Econrefused在dev计算机上的node.js中工作,node.js,mongodb,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上运行它时,邮递员返回EconRefused //index.js const express = require('express');

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

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

当我在我的开发计算机上运行node.js时,我可以使用postman获取和发布。 当我构建一个docker容器并在AWS docker上运行它时,邮递员返回EconRefused

//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专用IP地址,而不是公共地址或公共url


常量url=mongodb://localhost:27017';

代理有什么问题吗?您是否已经尝试用docker内解决方案的mongdb容器的名称替换localhost?在容器中使用localhost将指向容器的localhost,而不是主机服务器的localhostmondodb://MyWebsite.us:27017 我犯了一个不同的错误。或者你说的是另一个名字?recipes是图片上的名字,docker是我使用的。我不做任何我知道的关于代理的事情。我是linux的noob。