gpt4 book ai didi

javascript - "Error: Illegal arguments: string, undefined"并在 Node JS 中停止服务器

转载 作者:搜寻专家 更新时间:2023-10-31 22:53:53 25 4
gpt4 key购买 nike

我正在尝试在 Node JS 中构建日志记录应用程序。在这里密码验证应用程序不能正常工作。当我输入用户名和密码时,出现以下错误并停止服务器。

this is the error.

enter image description here

这是认证部分的代码

passport.use(new LocalStrategy(
function(username, password, done) {
User.getUserByUsername(username, function(err, user){
if(err) throw err;
if (!user) {
return done(null, false, {message: 'Unknown user'});
}

User.comparePassword(password, user.password, function(err, isMatch){
if(err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, {message: 'Invalid password'});
}
});
});
}));

此代码适用于未知用户。但它不适用于比较用户名和密码。我在这里看不到任何错误。我需要帮助来解决这个问题。

最佳答案

以宇宙程序员之名

在我的例子中,我忘记了选择密码因为在数据库中密码是 ((select: false))

此应用代码

const user = await User.findOne({email}).select("+password")

我忘了将 ((.select("+password"))) 附加到 findOne

我收到了这个错误;错误:非法参数:字符串,未定义

和这个数据库代码

const User = new mongoose.Schema({
username:{
type:String,
required: [true,"نام کاربری ضروری است"]
},
email:{
type:String,
required: [true,"رایانامه ضروری است"],
unique: true,
match:[
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{1,3})$/,
"لطفا یک رایانامه صحیح وارد کنید"
]
},
password:{
type:String,
required:[true,"رمز ضروری است"],
minlegth: 5,
select: false
}
})

关于javascript - "Error: Illegal arguments: string, undefined"并在 Node JS 中停止服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871280/

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