在 post 保存中间件中使用静态方法
Using static methods within post save middleware
我有一个静态方法来执行 find() 并在应用程序启动时将活动数据添加到 Redis。
CampaignSchema.statics.activeCampaignsToRedis = function () {
this
.find()
.where('active').equals(true)
...
};
我想添加一个 post 保存挂钩,它会在添加或修改新活动时重新运行静态方法以更新 Redis 中的数据。
CampaignSchema.post('save', function (next) {
// call CampaignSchema.statics.activeCampaignsToRedis();
});
您的 post-save 中间件回调接收保存的文档作为其一个参数,而不是下一个函数。从那里您可以通过其(未记录的)constructor
属性.
访问文档的模型
因此您可以将中间件函数编写为:
CampaignSchema.post('save', function (doc) {
doc.constructor.activeCampaignsToRedis();
});
我有一个静态方法来执行 find() 并在应用程序启动时将活动数据添加到 Redis。
CampaignSchema.statics.activeCampaignsToRedis = function () {
this
.find()
.where('active').equals(true)
...
};
我想添加一个 post 保存挂钩,它会在添加或修改新活动时重新运行静态方法以更新 Redis 中的数据。
CampaignSchema.post('save', function (next) {
// call CampaignSchema.statics.activeCampaignsToRedis();
});
您的 post-save 中间件回调接收保存的文档作为其一个参数,而不是下一个函数。从那里您可以通过其(未记录的)constructor
属性.
因此您可以将中间件函数编写为:
CampaignSchema.post('save', function (doc) {
doc.constructor.activeCampaignsToRedis();
});