0

我试图获取位于存储在 mongodb 集合中的文档中的字段的值。我的代码不工作,我不知道为什么。我知道 find() 返回一个光标对象,我想使用 cursor.next() 遍历它。根据我的调试,代码中的这一点似乎是失败的地方。我正在使用 node.js 的 mongodb 模块来执行这些操作。这是代码:

设置数据库/集合信息:

exports.login = function(request, response){
    var Db = require('mongodb').Db,
        Server = require('mongodb').Server,
        assert = require('assert'),
        server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true}),
        udb = new Db('users', server_config, {
            w: -1
        }),
        uname = request.body.uName,
        pw =  request.body.uPass;

打开数据库并查询:

 udb.open(function(err, udb) {
        assert.equal(null, err);
        var collection = udb.collection('profiles');
        collection.find({username: uname, password: pw}, function(err, collection){
            if( err || !collection){
                console.log("login fail");
                response.redirect('/');
            }
            else {
                collection.each(function(err, result){
                    assert.equal(null, err);
                    console.log("login success");
                    request.session.loggedIn = true;
                    request.session.user = uname;
                    response.redirect('/userDashboard');
                });
            }
        });
        udb.close();
    });
}

我似乎没有收到任何错误,页面只是无限期地“挂起”。

4

1 回答 1

1

我想什么都找不到。在 mongo shell 中测试查询,看看是否有任何结果。还要确保不要以纯文本形式存储密码!查看节点 bcrypt 包。

于 2013-10-11T16:11:30.980 回答