Mongoose: ํ•จ์ˆ˜๊ฐ€ ์•„๋‹˜ ์˜ค๋ฅ˜ - this.isModified๋Š” ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 09์›” 18์ผ  ยท  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)  {
});

ํ™•์ธ. ๊ฐ์‚ฌ ํ•ด์š”. ํšจ๊ณผ๊ฐ€์žˆ๋‹ค.

eslintrc ์ˆ˜์ •

2016๋…„ 11์›” 29์ผ ํ™”์š”์ผ ์˜ค์ „ 5:16, Nick Rameau ์•Œ๋ฆผ @github.com
์ผ๋‹ค:

ํ™”์‚ดํ‘œ ๊ธฐ๋Šฅ์œผ๋กœ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋Š” ES6์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
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 ๋“ฑ๊ธ‰