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);