bcrypt-nodejs抛出的错误参数 – Passport

我有一个login系统为我的Node.js应用程序设置。 最近,我改变了我的用户模型(CoffeeScript):

password: String 

 password: type: String select: false 

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

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

现在,每当我运行上面的函数,这个错误被抛出

 Incorrect arguments 

任何人有任何想法,为什么这会抛出后,我的用户模型中添加“select:false”?

如果密码或@ local.password不是string,则会引发此错误。 它只是发生在我身上,因为我试图调用实例方法的实例,不包括加载属性中的@ local.password。

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

假设这是在一个类中,你需要=>而不是->才能使@local工作。

检查密码的值是否越来越populated.settingselectfalse将不会检索密码的值。