Ketika saya menggunakan kode berikut:
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();
}
});
Saya menerima Kesalahan berikut:
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)
Masalah:
this
bukan Dokumen, Kueri, atau Skema. Nilainya adalah {}
Bagaimana saya bisa menyelesaikannya?
Anda menggunakan operator panah untuk panggilan balik, yang mengubah cakupan this
. Jika Anda mendefinisikan panggilan balik biasa, Anda seharusnya baik-baik saja, misalnya:
userSchema.pre('save', function(done) {
});
Baik. Terima kasih. Berhasil.
Perbaiki eslintrc Anda
Pada Selasa, 29 Nov 2016 jam 05:16, Nick Rameau [email protected]
menulis:
Apakah ada cara untuk melakukannya dengan fungsi panah? Saya menggunakan ES6 dan saya
eslintrc mengeluh tentang panggilan balik biasa.—
Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/Automattic/mongoose/issues/4537#issuecomment-263567210 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ABi5KbZG27HnF2sX2RwDIhTp4Rz1lIG_ks5rDCW1gaJpZM4J_8-c
.
Saya juga mengalami masalah ini. Terima kasih atas bantuannya @VictorGerritsenQLVR!
Apakah ada cara untuk mengubah kode untuk mengakomodasi operator panah, daripada menggunakan function(next)
?
@domarp-j Pertanyaan bagus. Saya memikirkannya dan mencoba mencari tahu tetapi saya tidak dapat menemukan sesuatu yang lebih mudah daripada hanya beralih ke fungsi panggilan balik biasa. Mungkin orang lain telah melakukannya tho. Saya akan mengawasi masalah ini.
Tidak ada cara untuk melakukannya, panah gemuk menggunakan cakupan leksikal untuk konteks, tidak ada jalan lain.
memiliki masalah yang sama, terima kasih atas bantuannya
Hai, terjebak pada masalah yang sama dengan fungsi panah es6. Terima kasih banyak!
bagus terima kasih
Terima kasih , bekerja untuk saya juga.
Komentar yang paling membantu
Anda menggunakan operator panah untuk panggilan balik, yang mengubah cakupan
this
. Jika Anda mendefinisikan panggilan balik biasa, Anda seharusnya baik-baik saja, misalnya: