рдЬрдм рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
userSchema.pre('save', (done) => {
if(this.isModified('password')) {
bcrypt.hash(this.password, null, null, (err, hash) => {
if(err) return next(err);
this.password = hash;
this.updated_at = new Date().toISOString();
done();
});
} else {
return done();
}
});
рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ:
TypeError: this.isModified is not a function
at model.userSchema.pre (C:\code\project\core\models\user.js:26:11)
at _next (C:\code\project\node_modules\hooks-fixed\hooks.js:62:30)
at fnWrapper (C:\code\project\node_modules\hooks-fixed\hooks.js:186:8)
at model.Object.defineProperty.value.fn (C:\code\project\node_modules\mongoose\lib\schema.js:221:11)
at _next (C:\code\project\node_modules\hooks-fixed\hooks.js:62:30)
at fnWrapper (C:\code\project\node_modules\hooks-fixed\hooks.js:186:8)
at C:\code\project\node_modules\mongoose\lib\schema.js:196:17
at C:\code\project\node_modules\kareem\index.js:127:16
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
рдореБрд╕реАрдмрдд:
this
рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдХреНрд╡реЗрд░реА рдпрд╛ рд╕реНрдХреАрдорд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдореВрд▓реНрдп {}
рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЖрдк рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрд░реЛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ this
рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдирд┐рдпрдорд┐рдд рдХреЙрд▓рдмреИрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
userSchema.pre('save', function(done) {
});
рдареАрдХред рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдВред
рдЕрдкрдиреЗ рдПрд╕реНрд▓рд┐рдВрдЯрд░реНрдХ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
рдордВрдЧрд▓рд╡рд╛рд░, 29 рдирд╡рдВрдмрд░, 2016 рдХреЛ рд╕реБрдмрд╣ 5:16 рдмрдЬреЗ, рдирд┐рдХ рд░рдореЗрдЙ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:
рддреАрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВ ES6 рдФрд░ my . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
eslintrc рдирд┐рдпрдорд┐рдд рдХреЙрд▓рдмреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣рд╛ рд╣реИред-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Automattic/mongoose/issues/4537#issuecomment-263567210 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABi5KbZG27HnF2sX2RwDIhTp4Rz1lIG_ks5rDCW1gaJpZM4J_8-c
.
рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣ рдореБрджреНрджрд╛ рдерд╛ред рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @VictorGerritsenQLVR!
рдХреНрдпрд╛ function(next)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рддреАрд░ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
@ domarp-j рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рдпрдорд┐рдд рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдиреЗ рдХрд┐рдпрд╛ рд╣реЛред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирдЬрд░ рд░рдЦреВрдВрдЧрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдореЛрдЯреЗ рддреАрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВред
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдирдорд╕реНрддреЗ, es6 рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЕрдЯрдХ рдЧрдпрд╛ рдерд╛ред рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдзрдиреНрдпрд╡рд╛рдж
рдзрдиреНрдпрд╡рд╛рдж , рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрд░реЛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ
this
рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдирд┐рдпрдорд┐рдд рдХреЙрд▓рдмреИрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: