【发布时间】:2013-10-04 17:54:46
【问题描述】:
意外行为
我有一些模型:
//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 次?
【问题讨论】:
-
对子文档调用两次验证。为什么,我不知道,但至少这解释了为什么钩子也会被触发两次。
标签: javascript node.js mongodb validation mongoose