gpt4 book ai didi

node.js - Mongoose - 向所有模型添加全局方法

转载 作者:搜寻专家 更新时间:2023-10-31 22:37:14 25 4
gpt4 key购买 nike

简单问题:

我如何在 Mongoose 中向我的模型添加静态方法,使其适用于每个模型而不是一个模型?

最佳答案

所以您有一个静态方法,(例如)您的用户、博客、评论和警报模型在实现上没有任何差异地共享?

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

关于node.js - Mongoose - 向所有模型添加全局方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com