版权声明:本文为博主原创文章,未经博主允许不得转载。 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