Простой вопрос:Mongoose - добавить глобальный метод ко всем моделям
Как я могу добавить статические методы моих моделей Mongoose, что относится к каждой модели, а не только один?
Простой вопрос:Mongoose - добавить глобальный метод ко всем моделям
Как я могу добавить статические методы моих моделей Mongoose, что относится к каждой модели, а не только один?
Итак, у вас есть один статический метод, который (например) включает все ваши пользователи, блоги, комментарии и модели Alert без каких-либо различий в реализации?
Фактический способ применения поведения к нескольким различным моделям в Mongoose осуществляется через плагины, и вы можете сделать глобальный плагин. Я придерживаюсь традиционного синтаксиса, но если вы хотите использовать импорт и экспорт ES6, не стесняйтесь.
// ./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);
HTTP: // mongoosejs.com/docs/plugins.html – Matt