我使用NodeJS wih MongoDB使用mongoDB包。当我运行mongod命令时,它工作正常,并给出“等待端口27017上的连接”。所以,mongod似乎在工作。但是MongoClient不工作,当我运行node index. js命令时出错-
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
我已经安装mongodb 3.4和我的代码是-
var MongoClient = require('mongodb').MongoClient;
var dburl = "mongodb://localhost:27017/test";
MongoClient.connect(dburl, function(err, db) {
if (err) {
throw err;
}
console.log('db connected');
db.close();
});
我已经在root上创建了data/db目录并授予写入权限。monold. conf文件将db路径作为-
存储:dbPath: /var/lib/mongo
但看起来它实际上是将db路径作为data/db而不是var/lib/mongo
它工作得很早,但突然停止了。
从Nodejs 14升级到17后,我的应用程序停止工作。
我得到的错误是
MongoServerSelectionError: connect ECONNREFUSED ::1:27017
解决方法就是用替换
localhost
0.0.0.0
const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
到
const uri = "mongodb://0.0.0.0:27017/";
const client = new MongoClient(uri);
我发布这个作为答案,因为我在互联网上找不到解决方案,我在这个问题上浪费了很多时间…
发生这种情况可能是因为MongoDB服务未启动。按照以下步骤启动它:
服务器将启动。现在再次执行npm start
,这次代码可能可以工作。
我完全忘记启动MongoDB。转到终端中的单独选项卡并输入:
sudo service mongod start