我试图获取位于存储在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();
});
}
我似乎没有收到任何错误,页面无限期地“挂起”。
答案 0 :(得分:1)
我认为没有找到任何东西。在mongo shell中测试查询,看看你是否得到任何东西。另外一定不要以明文形式存储密码!查看节点bcrypt包。