gpt4 book ai didi

node.js - 在保存后中间件中使用静态方法

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:32 24 4
gpt4 key购买 nike

我有一个静态方法来执行 find() 并在应用程序启动时将营销事件数据添加到 Redis。

CampaignSchema.statics.activeCampaignsToRedis = function () {
this
.find()
.where('active').equals(true)
...
};

我想添加一个保存后 Hook ,每当添加或修改新的营销事件时,该 Hook 都会重新运行静态方法来更新 Redis 中的数据。

CampaignSchema.post('save', function (next) {
// call CampaignSchema.statics.activeCampaignsToRedis();
});

最佳答案

您的保存后中间件回调接收保存的文档作为其一个参数,而不是下一个函数。从那里,您可以通过其(未记录的)constructor 属性访问文档的模型。

因此您可以将中间件函数编写为:

CampaignSchema.post('save', function (doc) {
doc.constructor.activeCampaignsToRedis();
});

关于node.js - 在保存后中间件中使用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30035535/

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