Mongoose: Pengait pra simpan tidak menyediakan dokumen

Dibuat pada 2 Sep 2015  ·  3Komentar  ·  Sumber: Automattic/mongoose

Ada masalah dengan kait pra penyimpanan di mana 'ini' seharusnya memberi saya dokumen yang disimpan tetapi malah memberikan yang tidak terdefinisi.

import mongo from 'mongoose'
import crypt from 'bcryptjs'

const User = new mongo.Schema({
  username: {type: String, unique: true, required: true},
  password: {type: String, select: false, required: true}
  // token: {type: String}
})
//
User.pre('save', (next) => {
  console.log(this);
  if (this.isModified('password') || this.isNew) {
    crypt.genSalt(10, (err, salt) => {
      if (err) {
        next(err)
      } else {
        crypt.hash(user.password, salt, (err, hash) => {
          if (err) {
            next(err)
          } else {
            user.password = hash
            next()
          }
        })
      }
    })
  } else {
    next()
  }
})

export default mongo.model('User', User)

Apa yang mungkin menjadi kesalahan?
PS: Ini menghemat secara normal ketika pra hook sedang tidak digunakan.

Komentar yang paling membantu

Panah gemuk di ES6 mengikat this ke lingkup leksikal , yang merupakan cara yang bagus untuk mengatakan bahwa this di dalam fungsi panah sama dengan di luar fungsi panah. Gunakan User.pre('save', function(next) {}); sebagai gantinya.

Semua 3 komentar

Panah gemuk di ES6 mengikat this ke lingkup leksikal , yang merupakan cara yang bagus untuk mengatakan bahwa this di dalam fungsi panah sama dengan di luar fungsi panah. Gunakan User.pre('save', function(next) {}); sebagai gantinya.

Apakah ada cara untuk mendapatkan objek dengan fungsi panah ?, saya akan menggunakan 'fungsi' tetapi panduan gaya dikenakan dalam proyek.

Sayangnya bukan atm, pra kait secara eksplisit mengandalkan melewatkan dokumen melalui this daripada sebagai parameter. Panah gemuk tidak akan bekerja dengan paradigma ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat