编辑页面

生命周期回调

概述

#

生命周期回调是在特定模型方法之前或之后调用的函数。例如,您可能使用生命周期回调在创建或更新 User 记录之前自动计算 fullName 属性的值。

Sails 默认情况下公开了一些生命周期回调

.create() 上的生命周期回调
#

afterCreate 生命周期回调将仅在将 fetch 元标志设置为 true 的查询上运行。有关使用 meta 标志的更多信息,请参见 Waterline 查询

beforeCreate 也会在调用 .createEach() 时运行批量插入数据。但是,afterCreate 不会

.update() 上的生命周期回调
#

afterUpdate 生命周期回调将仅在具有 fetch 元标志设置为 true.update() 查询上运行。有关使用 meta 标志的更多信息,请参见 Waterline 查询

.destroy() 上的生命周期回调
#

afterDestroy 生命周期回调将仅在具有 fetch 元标志设置为 true.destroy() 查询上运行。有关使用 meta 标志的更多信息,请参见 Waterline 查询

示例

#

如果您想在保存到数据库之前对密码进行哈希处理,则可以使用 beforeCreate 生命周期回调。

// User.js
module.exports = {

  attributes: {

    username: {
      type: 'string',
      required: true
    },

    password: {
      type: 'string',
      minLength: 6,
      required: true
    }

  },


  beforeCreate: function (valuesToSet, proceed) {
    // Hash password
    sails.helpers.passwords.hashPassword(valuesToSet.password).exec((err, hashedPassword)=>{
      if (err) { return proceed(err); }
      valuesToSet.password = hashedPassword;
      return proceed();
    });//_∏_
  }

};

是否有遗漏?

如果您发现我们遗漏了什么或可以改进的地方,请按照 此链接 并向 sails 存储库提交拉取请求。在我们合并它后,更改将在网站下次部署时反映出来。

概念