2016-07-04 9 views
2

Ich habe eine Login-System für meine Node.js App einrichten. Vor kurzem habe ich eine Änderung an meinen Benutzermodell (Coffee):‚Falsche Argumente‘ geworfen von bcrypt-NodeJS - Pass

password: String 

zu

password: 
     type: String 
     select: false 

Meine Funktion Passwort-Hashes vergleichen mit bcrypt wie folgt:

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

Nun, wenn ich führen Sie die obige Funktion dieser Fehler ausgelöst wird

Incorrect arguments 
0 hat

Wer noch keine Ahnung, warum dies geworfen werden würde, nachdem ich „wählen: false“ In meinem Benutzermodell?

Antwort

-1

überprüfen, ob Wert für Kennwort wird immer wählen falsch populated.setting den Wert das Passwort nicht abrufen.

0

Diese ausgelöst, wenn entweder das Kennwort oder @ local.password keinen String. Es ist einfach passiert mir, als ich versuchte, die Instanz-Methode auf einer Instanz aufrufen, die nicht @ local.password in den geladenen Attribute einschließlich wurde.

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

Angenommen, dies in einer Klasse ist, werden Sie => brauchen statt -> um @local zu arbeiten.