针对MongoDB检查登录凭据不起作用
Checking login credentials against a MongoDB is not working
router.post('/checkuser', function(req, res) {
var db = req.db;
var userEmail = req.body.useremail;
var password = req.body.password;
var collection = db.get('usercollection');
collection.find( { "email": userEmail }, function (err, doc) {
if (err || !doc) {
res.redirect("login");
} else {
res.redirect("userlist");
}
});
});
此代码应该检查MongoDB中的登录凭据,如果值不匹配,则返回false
。
但它总是重定向到userlist.jade
文件。有人可以解释一下为什么吗?
由于回调函数中的当前逻辑,您的代码始终重定向到userlist.jade
文件: 由于find()
方法返回游标,if 语句检查是否存在错误或匹配的文档没有返回游标,因此变量 doc 是一个游标,无论是否存在匹配,它始终返回。 请改用findOne()
方法:
collection.findOne({"email": userEmail}, function(err, user) {
if( !err && user && user.password === password ) {
res.redirect("userlist");
}
else { res.redirect("login"); }
});
相关文章:
- 我的点击登录在网页上不起作用
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- 科尔多瓦脸书登录FB.api调用不起作用
- PHP登录不起作用
- 登录后PHP登录脚本重定向不起作用
- 如果用户登录不起作用,则运行脚本
- 会话在登录页不起作用
- JSP-Javascript-JSP 登录流程不起作用
- $.mobile.changePage() 登录后不起作用
- Facebook 登录在 CN1 JavaScript 端口中不起作用
- Phonegap/Cordova facebook 登录在已经连接时不起作用
- Facebook 登录重定向 PHP/Javascript 不起作用
- HTML 登录不起作用
- $location.path() 在 facebook 登录后不起作用
- 谷歌加登录按钮已呈现,但不起作用
- 使用 JavaScript 启动 Google+ 登录流程不起作用
- 使用 Angular JS 登录,$http请求不起作用
- Facebook自动登录JS在控制台中工作,但在GM脚本中不起作用
- FB.登录响应会话不起作用
- 导航栏折叠在登录模板上不起作用