首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sails中恢复生命周期回调?

如何在sails中恢复生命周期回调?
EN

Stack Overflow用户
提问于 2015-02-17 19:42:54
回答 1查看 288关注 0票数 0

在测试模型创建之后,我注意到没有调用生命周期回调,在阅读Waterline的文档时我发现:

注意:在使用自定义适配器方法时,不使用Waterline的特性。您不再像使用定义的Waterline方法时那样获得生命周期回调和验证。

不过,我并没有故意使用自定义适配器方法,这是我在有关禁用生命周期回调的文档中找到的唯一参考。

配置/*中任何文件的标准/设置应该绝对确保生命周期回调不被禁用?

以下是我使用的唯一生命周期回调不被调用的模型的副本:

代码语言:javascript
复制
/**
* User.js
*
*/

var bcrypt = require('bcrypt');

module.exports = {
attributes: {
'email': {
        type: 'email',
        required: true,
        unique: true
},

'username': {
        type: 'string',
        required: true,
        unique: true,
        minLength: 5,
        maxLength: 16
},

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

'family': {
        model: 'family'
},

'lastlogin': {
        type: 'datetime',
        defaultsTo: function() {return new Date().toISOString();}
},

    beforeCreate: function(obj, cb) {
        console.log("In beforeCreate");
        bcrypt.hash(obj.password, 10, function(err, hash) {
            if (err) {
                console.log(err);
                return cb(err);
            }

            obj.password = hash;
            cb();
        });
    }
  }
};`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 23:20:57

您的回调需要在导出对象上,而不是属性。

代码语言:javascript
复制
/**
* User.js
*
*/

var bcrypt = require('bcrypt');

module.exports = {
attributes: {
'email': {
        type: 'email',
        required: true,
        unique: true
    },

'username': {
        type: 'string',
        required: true,
        unique: true,
        minLength: 5,
        maxLength: 16
    },

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

'family': {
        model: 'family'
    },

'lastlogin': {
        type: 'datetime',
        defaultsTo: function() {return new Date().toISOString();}
    },

},

beforeCreate: function(obj, cb) {
    console.log("In beforeCreate");
    bcrypt.hash(obj.password, 10, function(err, hash) {
        if (err) {
            console.log(err);
            return cb(err);
        }

        obj.password = hash;
        cb();
    });
   }

};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28569793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档