我有一个Node JS演示应用程序,我想连接到Mongo数据库。我的代码在不支持Mongo的服务器上,因此我尝试从Docker容器运行它。当我运行该应用程序时,我收到有关与数据库的连接的一些错误:
UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND mongo mongo:27017]
具有数据库的容器已启动并正在运行:
[root@xxxxxx docker-node-mongo]# docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:4.0.4^C0.0:27017-27019->27017-27019/tcp mongodb
[root@xxxxxx docker-node-mongo]# [root@vps12219000 docker-node-mongo]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
ccdf49525782 mongo:4.0.4 "docker-entrypoint.s 26 minutes ago Up 26
minutes 0.0.0.0:27017-27019->27017-27019/tcp mongodb
我正在这样连接数据库:
const mongoose = require('mongoose');
const DB_URI = 'mongodb://mongo:27017/toDoApp';
mongoose.connect(DB_URI).then(() => {
console.log('Listening on port: ' + PORT);
app.listen(PORT);
});
有人可以告诉我我在做什么错吗?谢谢!
注意:我只想在容器中运行数据库,而不要在节点部分中运行。