意外行为

我有一些模型:

//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次?

最佳答案

我发现,回答我的问题(致亚伦·赫克曼)

将前置挂钩添加到子架构之前,再将其传递给父架构。

schema1.pre(..)
schema2 = Schema({ array: schema1 })

关于javascript - Mongoose 的意外行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19118569/

10-09 16:59