水线生命周期回调未被调用

Waterline Lifecycle Callbacks not get invoked

我目前 运行 Sails.js v. 0.11.0 和 Waterline v. 0.10.0b.

我有一个带有两个生命周期回调的用户模型,当我销毁用户时它们不会被调用。我尝试了 user.destroy() 以及 User.destroy(id)。我应该以某种方式显式调用那些 afterDestroy 回调,还是应该在某处通过设置激活它们?我的数据库是 MySQL via sails-mysql。任何帮助将不胜感激!

用户模型

module.exports = {
  tableName: 'user',
  attributes: {
    name: {
      type: 'string',
      required: true
    },
    lastName: {
      type: 'string',
      required: true
    },

    ...

    beforeDestroy: function(destroyedRecord, next) {
      console.log('!!!!!destroyedRecord', destroyedRecord);
      next();
    },

    afterDestroy: function(destroyedRecord, next) {
      console.log('!!!!!destroyedRecord', destroyedRecord);
      next();
    },

    toJSON: function () {
      var obj = this.toObject();
      delete obj.password;
      return obj;
    }
  },

  getFullName: function (user) {
    return user.name + ' ' + user.lastName;
  }

};

删除函数

remove: function (req, res, next) {

  var id = req.param('id');

  User.findOne({'id' : id}).then(function(user){
      user.destroy();
      res.send(200);
  }).catch(function(err){
      console.log(err);
      res.send(400);
  });

回调在属性之外,请注意,您可以将全名放在属性内,如下所示。

module.exports = {
  tableName: 'user',
  attributes: {
    name: {
      type: 'string',
      required: true
    },
    lastName: {
      type: 'string',
      required: true
    },

    fullName: function () {
      return this.name + ' ' + this.lastName;
    }


  },

  beforeDestroy: function(destroyedRecord, next) {
    console.log('!!!!!destroyedRecord', destroyedRecord);
    next();
  },

  afterDestroy: function(destroyedRecord, next) {
    console.log('!!!!!destroyedRecord', destroyedRecord);
    next();
  },

  toJSON: function () {
    var obj = this.toObject();
    delete obj.password;
    return obj;
  }

};