通过Node.Js连接mongoDB时出现MongoNetworkError

时间:2019-11-26 21:03:34

标签: node.js mongodb mongoose

我是Node.J的新手,正在通过教程学习,我已经安装了mongoDB服务器和mongoDB指南针。尝试使用Visual Studio代码和Windows Powershell运行它-但我无法将应用程序连接到mongoDB。

代码:

const mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/playground').then(()=>
console.log('connected to mongodb..'))
.catch(err => console.error('could not connect to MongoDB..', err));

错误:

could not connect to MongoDB.. MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) {
  name: 'MongoNetworkError',
  message: 'connect ECONNREFUSED 127.0.0.1:27017',
  stack: 'Error: connect ECONNREFUSED 127.0.0.1:27017\n' +
    '    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14)'
}]

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

好像您缺少端口号。连接字符串的示例为mongodb://localhost:27017/MyDb

答案 1 :(得分:0)

我不知道Node.js或MongoDB。

但是,错误消息对我来说似乎很常见。看来localhost拒绝了端口27017上的连接。因此,我要检查的第一件事是数据库服务器是否确实在该端口上进行监听。

我什至不知道您的堆栈是在Windows还是Linux下运行。但是它们两个都有一个名为netstat的工具,可用于检查谁正在侦听端口27017。如果没有人在此侦听,则说明您的数据库服务器未按预期启动。

发生故障的另一个原因可能是防火墙阻止了到端口27017的入站连接。在您的情况下,这不太可能,因为要建立的连接是从localhostlocalhost;这样的连接通常不会被防火墙阻止。

答案 2 :(得分:0)

如果使用Windows并将mongoDB安装到C驱动器,则应创建两个
C驱动器中的目录 一个是“数据”, 内部数据创建“ db”,例如C:// data / db

打开您的cmd面板,然后键入mongod -dbpath c://data/db 并且您的mongodb服务正在运行,现在您可以连接mongoDB