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 回でしょうか?

4

1 に答える 1

2

私の質問に答えてください(Aaron Heckmannへのthx)

親に渡す前に子スキーマに pre フックを追加します。

schema1.pre(..)
schema2 = Schema({ array: schema1 })
于 2013-10-02T15:33:38.010 に答える