Sails基础之Model层的Lifecycle callbacks

匿名 (未验证) 提交于 2019-12-02 23:32:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xreztento/article/details/90269238

Lifecycle

Sails Model的生命周期主要是值对于记录操作的生命周期:
create->update->destroy
Lifecycle callbacks指的是在上述生命周期到达或完成时的hook方法,包括以下内容:

Callbacks on create
  • beforeCreate: fn(recordToCreate, proceed)
  • afterCreate: fn(newlyCreatedRecord, proceed)
Callbacks on update
  • beforeUpdate: fn(valuesToSet, proceed)
  • afterUpdate: fn(updatedRecord, proceed)
Callbacks on destroy
  • beforeDestroy: fn(criteria, proceed)
  • afterDestroy: fn(destroyedRecord, proceed)

该部分内容非常好理解,主要可以用于默认值生成、密码加盐、额外的关联计算操作等,举例如下:

npm install node-uuid --save npm install crypto --save 

User Model:

const crypto = require('crypto');  const uuid = require('node-uuid');  module.exports = {   primaryKey: 'uuid',   attributes: {     uuid: {       type: 'string',       required: true,     },     username: {       type: 'string',       required: true,       allowNull: false,       unique: true,     },     password: {       type: 'string',       required: true,       allowNull: false,     },    },   beforeCreate: function (valuesToSet, proceed) {     let md5 = crypto.createHash('md5');     valuesToSet.uuid = uuid.v4();     valuesToSet.password = md5.update(valuesToSet.password).digest('hex');     return proceed();   }  }; 

上面代码实现在创建前给uuid赋默认值和计算密码md5值进行保存。
数据库的表结构如下:

通过以下url创建一个新的用户记录:
http://127.0.0.1:1337/user/create?username=admin&password=123456&uuid=auto
查看结果如下:

文章来源: https://blog.csdn.net/xreztento/article/details/90269238
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!