gpt4 book ai didi

mongodb - Mongoose:如何在模式方法中访问 select:false 属性?

转载 作者:IT老高 更新时间:2023-10-28 13:35:25 25 4
gpt4 key购买 nike

快速代码:

var userSchema = new mongoose.Schema({
username: String,
password: {type: String, select: false}
});

userSchema.methods.checkPassword = function(password, done) {
console.log(password); // Password to check
console.log(this.password); // stored password
...
};

我不希望默认情况下可以访问密码,但我需要一种方法来在验证用户身份之前检查用户输入的密码。我知道我可以对数据库进行查询以包含这些值,但我对如何访问模式方法本身的隐藏属性有点迷茫。方法本身中的 this 只是返回的查询,所以似乎无法访问?我应该在其他地方执行 checkPassword() 函数吗?

最佳答案

您可以使用select在查询中选择密码。这是一个示例查询。

User.findOne().select('password').exec(callback);

这一定是你要检查的密码。

userSchema.methods.checkPassword = function(password, done) {
User.findOne({username: this.username}).select('password').exec(function (err, user) {
if (user.password == password)
return true;
else
return false;
});
}

希望对你有所帮助。

关于mongodb - Mongoose:如何在模式方法中访问 select:false 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838640/

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