Javascript ';不正确的参数';bcrypt nodejs抛出-Passport

Javascript ';不正确的参数';bcrypt nodejs抛出-Passport,javascript,node.js,express,coffeescript,passport.js,Javascript,Node.js,Express,Coffeescript,Passport.js,我已经为Node.js应用程序设置了登录系统。最近我对我的用户模型(CoffeeScript)进行了更改: 到 我将密码哈希与bcrypt进行比较的函数如下: userSchema.methods.validPassword = (password) -> bcrypt.compareSync password, @local.password 现在,每当我运行上述函数时,就会抛出这个错误 Incorrect arguments 有人知道为什么在我向我的用户模型中添加“

我已经为Node.js应用程序设置了登录系统。最近我对我的用户模型(CoffeeScript)进行了更改:

我将密码哈希与bcrypt进行比较的函数如下:

userSchema.methods.validPassword = (password) ->
        bcrypt.compareSync password, @local.password
现在,每当我运行上述函数时,就会抛出这个错误

Incorrect arguments

有人知道为什么在我向我的用户模型中添加“select:false”后会引发此问题吗?

检查密码值是否已填充。设置select false将不会检索密码值。

如果Password或@local.Password不是字符串,则会引发此问题。当我试图在加载的属性中不包含@local.password的实例上调用instance方法时,发生了这种情况

userSchema.methods.validPassword = (password) ->
  bcrypt.compareSync password, @local.password

假设这是在一个类中,您需要
=>
而不是
->
,以便
@local
工作。

记录保存的密码和传入密码的值。我打赌其中一个是未定义的

Incorrect arguments
userSchema.methods.validPassword = (password) ->
  bcrypt.compareSync password, @local.password