Mongoose: рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ рддреНрд░реБрдЯрд┐ - this.isModified рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рд╕рд┐рддре░ 2016  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

рдЬрдм рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

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)  {
});

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдПрд░реЛ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ 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 рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЕрдЯрдХ рдЧрдпрд╛ рдерд╛ред рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдзрдиреНрдпрд╡рд╛рдж

рдзрдиреНрдпрд╡рд╛рдж , рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Soviut picture Soviut  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Igorpollo picture Igorpollo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

varunjayaraman picture varunjayaraman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adamreisnz picture adamreisnz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jeneser picture jeneser  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ