我知道可以为每个Schema创建实例方法,但有没有办法创建与所有Schema相关的实例调用。
答案 0 :(得分:1)
您可能想要创建一个函数,然后该函数想要用于所有架构。
如果我已了解您的要求,那么您需要在单独的文件中创建一个函数,并将该文件添加为架构插件。
例如:
在 lastUpdate.js 文件中创建一个函数,该函数将用于不同的模式
module.exports = exports = function lastUpdatePlugin (schema) {
schema.add({ updateTime: Date })
schema.pre('save', function (next) {
this.updateTime= new Date
next()
});
}
user.js 架构文件中的:
var lastUpdate = require('./lastUpdate');//load lastUpdate.js file
var User= new Schema({name: String, ... });
User.plugin(lastUpdate);
bank.js 架构文件中的:
var lastUpdate = require('./lastUpdate');//load lastUpdate.js file
var Bank= new Schema({bankName: String, ... });
Bank.plugin(lastUpdate);
然后,当保存user
和bank
时,会自动更新每个架构的updateTime