我为我的Node.js应用程序设置了登录系统。最近我改变了我的用户模型(CoffeeScript):
password: String
到
password:
type: String
select: false
我将密码哈希与bcrypt进行比较的功能如下:
userSchema.methods.validPassword = (password) ->
bcrypt.compareSync password, @local.password
现在,每当我运行上述函数时,都会抛出此错误
Incorrect arguments
在添加" select:false"之后,任何人都知道为什么会抛出这个。到我的用户模型?
答案 0 :(得分:0)
如果密码或@ local.password不是字符串,则抛出此异常。它恰好发生在我身上,因为我试图在加载的属性中不包含@ local.password的实例上调用实例方法。
答案 1 :(得分:0)
=>
假设这是在课堂上,您需要->
而不是@local
才能使public abstract class BaseAppActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("TESTING", "CREATED: " + getClass().getSimpleName() + " -- TASK ID: " + getTaskId());
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("TESTING", "DESTROYED: " + getClass().getSimpleName() + " -- TASK ID: " + getTaskId());
}
}
正常工作。
答案 2 :(得分:0)
记录保存的密码和输入密码的值。我敢打赌,其中之一是不确定的。
答案 3 :(得分:-1)
检查密码的值是否已填充。设置选择false将不会检索密码值。