loopback:删除模型中的列而不是实际删除

时间:2017-10-06 21:35:11

标签: mysql rest loopbackjs

我正在考虑使用Loopback来构建RESTFull API,内部使用。我目前正在对API的一小部分进行原型设计,以评估限制和工作量。 我有一个很大的限制:我被允许创建/读取/更新,但是对于删除,我更新了数据库条目以将其标记为“已删除”(数据库中的布尔值)。我不允许在物理上删除数据库条目。

我有一个PersistedModel,以及对象之间的某种关系(依赖关系,就像来自另一个对象的一个​​对象)。

我的问题是:有没有办法覆盖后台完成的DELETE操作并输入一些自定义代码:

  • 将对象标记为“已删除”(如UPDATE表SET已删除= 1 WHERE id = XXX)
  • 手动CASCADE到依赖对象

使用DELETE api调用时?

谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

要覆盖删除方法,您可以使用下一个代码。根据它创建一个mixin并附加每个必需的模型

module.exports = function(Model) {

  Model.removeById = Model.deleteById = Model.destroyById = function(id, options, cb) {
    if (cb === undefined) {
      if (typeof options === 'function') {
        // destroyById(id, cb)
        cb = options;
      }
    }
    cb = cb || createPromiseCallback();

    Model.update({id: id, {deleted: true}, options, cb})
    return cb.promise;
  };
}