在节点应用程序mongodb查询中查找()非常混乱

时间:2013-10-11 15:48:07

标签: node.js mongodb

我试图获取位于存储在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();
    });
}

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

1 个答案:

答案 0 :(得分:1)

我认为没有找到任何东西。在mongo shell中测试查询,看看你是否得到任何东西。另外一定不要以明文形式存储密码!查看节点bcrypt包。