Javascript Node.js MongoDB套接字关闭错误
我目前正在为我的NodeJS应用程序创建一个登录系统。然而,每当我尝试检索集合时,MongoDB都会出现一个奇怪的错误 错误消息Javascript Node.js MongoDB套接字关闭错误,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我目前正在为我的NodeJS应用程序创建一个登录系统。然而,每当我尝试检索集合时,MongoDB都会出现一个奇怪的错误 错误消息 [MongoError: server localhost:27017 sockets closed] name: 'MongoError', message: 'server localhost:27017 sockets closed' 这是我连接数据库的代码 var username = req.body.user.username; var
[MongoError: server localhost:27017 sockets closed]
name: 'MongoError',
message: 'server localhost:27017 sockets closed'
这是我连接数据库的代码
var username = req.body.user.username;
var password = req.body.user.password;
MongoClient.connect("mongodb://localhost:27017/myDb", function(err, db){
assert.equal(null, err);
var collection = db.collection("accounts");
collection.findOne({"username": username}, function(err, item){
console.log(item);
console.log(err);
});
db.close();
});
有人知道我哪里出错了吗?在完成查找查询之前,您正在关闭数据库(这是一种异步方法)。删除该
db.close()
或在findOne
回调上移动它
var username = req.body.user.username;
var password = req.body.user.password;
MongoClient.connect("mongodb://localhost:27017/myDb", function(err, db){
assert.equal(null, err);
var collection = db.collection("accounts");
collection.findOne({"username": username}, function(err, item){
console.log(item);
console.log(err);
db.close();
});
});
顺便说一句,通过在每次查询时连接/关闭DB连接,您的性能会非常差,您应该避免这样做:在应用程序启动时连接一次,然后在应用程序关闭时关闭DB:0非常感谢!“垃圾邮件接受按钮”: