0
意外行爲的意外行爲與貓鼬
我有一些模型:
//test.js
var mongoose = require('../utils/mongoose');
var schema1 = new mongoose.Schema({
name: String
})
var schema2 = new mongoose.Schema({
objectsArray: [schema1]
});
schema1.pre('validate', function(next) {
console.log('pre validate schema1');
next();
});
module.exports = mongoose.model('Schema2', schema2);
確實省了:
var o = new require('test')({ objectsArray: [{ name: 'Alex' }] });
o.save(function(err){
console.log('saved');
});
後,在控制檯我得到:
pre validate schema1
pre validate schema1
saved
的問題是,爲什麼? schema1.pre('validate')
- 出現2次,但我期待1次?
驗證在子文檔上被調用兩次。什麼,我不知道,但至少可以解釋爲什麼鉤子被觸發兩次。 – robertklep