【问题标题】:Extending MongoDB's "save" method in nodejs在nodejs中扩展MongoDB的“save”方法
【发布时间】:2014-12-19 05:20:11
【问题描述】:

在我们的应用程序中,我们有一个大文档,它是 REST api 的大部分数据的来源。

为了正确地使 REST api 的客户端缓存无效,我想跟踪对文档所做的任何修改。我们想出的最好方法是扩展 mongo save 命令以使文档发送通知(然后像往常一样保存)。

问题是,实际上如何在实践中做到这一点?是否有直接的方法来扩展 mongo 的“save”方法,或者我们应该在我们使用的模型上创建一个自定义方法(即“saveAndNotify”)(如果可以的话,我会避免)?

[编辑] 所以原则上,我希望这样做,但我遇到了不破坏父保存函数()的问题;

mySchema.methods.save = function() {
  // notify some stuff
  ...
  //call mongo save function
  return this.super.save();
};

【问题讨论】:

    标签: node.js mongoose cache-control node-mongodb-native


    【解决方案1】:

    猴子修补核心 mongo 对象是个坏主意,但事实证明 mogoose 有一个 middleware 概念可以很好地处理这个问题:

    var schema = new Schema(..);
    schema.pre('save', function (next) {
      // do stuff
      next();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2016-02-13
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多