gpt4 book ai didi

javascript - Node.js MongoDB 套接字关闭错误

转载 作者:可可西里 更新时间:2023-11-01 09:09:20 25 4
gpt4 key购买 nike

我目前正在为我的 NodeJS 应用程序制作一个登录系统。但是,每当我尝试检索集合时,我都会从 MongoDB 收到一个奇怪的错误。

错误信息

[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();
});


});

顺便说一句,通过在每个查询中连接/关闭数据库连接,您的性能会很差,您应该避免这样做:在应用程序启动时连接一次并在应用程序关闭时关闭数据库

关于javascript - Node.js MongoDB 套接字关闭错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35812710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com