mongoose – 将全局方法添加到所有模型
简单的问题:
我如何在Mongoose中将模型添加到我的模型中,该模型适用于每个模型而不仅仅是一个模型?
所以,你有一个静态的方法(例如)你的用户,博客,评论和警报模型都分享没有任何实施的差异?
将行为应用到Mongoose中的多个不同模型的事实上的方法是通过插件,并且可以执行全局插件。 我会坚持传统的语法,但如果你想使用ES6import和出口感到自由。
// ./models/plugins/echo.js module.exports = function echoPlugin(schema, options) { schema.statics.echo = function(){ console.log('Echo'); } }
这定义了一个插件可以应用到一个单一的模式,如下所示:
userSchema.plugin(require('./plugins/echo'));
或者,您的项目中的所有模型都是这样的:
// somewhere in your app startup code var mongoose = require('mongoose'); var echoPlugin = require('./models/plugins/echo'); mongoose.plugin(echoPlugin);