首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js MongoDB套接字关闭错误

Node.js MongoDB套接字关闭错误
EN

Stack Overflow用户
提问于 2016-03-05 18:01:39
回答 1查看 4.1K关注 0票数 4

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

错误消息

代码语言:javascript
复制
[MongoError: server localhost:27017 sockets closed]
name: 'MongoError',
message: 'server localhost:27017 sockets closed'

下面是连接到我的数据库的代码

代码语言:javascript
复制
    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();
    });

有谁能看到我哪里错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-05 18:10:12

在find查询完成之前,您正在关闭自己的数据库(这是一个异步方法)。在findOne回调中删除该db.close()或移动它。

代码语言:javascript
复制
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 connexion的性能将非常差,您应该避免这样做:在应用程序启动时连接一次,并在应用程序关闭时关闭数据库

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35812710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档