gpt4 book ai didi

javascript - Node + Express + mongoose 查询认证

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:54 25 4
gpt4 key购买 nike

我正在快速构建一个简单的网络应用程序,我在 session 验证方面有点困难,当我开始构建应用程序的前端时,我最终将使用主干和 regExp 验证客户端中的所有内容。不,基本上我对 mongoose 中的查询返回 mongoose 文档对象有疑问。我查找了几个解决方案,在查询中您可以使用 .lean() 来获取对象,或者获取查询的返回值并应用 .toObject(),这一切都工作得很好,但是当我尝试使用字符串验证 key 的值时,它会返回 false。我将发布一个示例代码,它不完全是我所得到的,但它足够接近以阐明要点。

这将是我的模型文件的示例

var User = new Schema({}, { strict: false });

User.method('authenticate', function(plainText) {
var object = this.toObject();
return plainText == object.password; });
mongoose.model('User', User);
mongoose.connect( definitions.dbConnect );

在我的应用程序文件中我会有类似的内容

app.get('/session', routes.showLogin);
app.post('/session/new', routes.login);

在我的路由文件 id 中有类似

exports.login = function(req, res){


var userQuery = new RegExp(req.body.username , 'i');
var passwordQuery = new RegExp(req.body.password, 'i');
var Query = User.find();

Query.findOne().where('username', userQuery).exec(function(err, user){

if(user && user.authenticate((req.body.password))){
req.session.userId = user._id;

}else{

res.redirect('/session');
}
});
},

任何想法将不胜感激,它可能非常愚蠢......:/

提前致谢!

最佳答案

是的,robert klep 是对的,在我搜索了 mongoose 文档和 mongodb 文档之后,很明显查询返回一个 mongo 文档对象,换句话说应该转换为相同的对象或变量类型以使操作数正常工作。

关于javascript - Node + Express + mongoose 查询认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com