Sailsjs异步模型toObject

时间:2013-11-30 07:29:56

标签: javascript node.js sails.js

我需要使用在模型'toObject'方法中以异步方式接收的数据。

toObject: function() {
    var user = this;
    return q(Group.find())
    .then(function(groups) {
    ....
    return user;
    });
},
toJSON: function() {
    this.toObject().then(function(user) {
        return user;
    });
}

这不起作用并且中断了所有策略(用户变得不可用)。

有没有办法可以做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

Sails不会等待toJSON完成。它假定此方法不是异步的。这种逻辑的位置在控制器内部。在例如beforeCreate方法中,你必须调用最后一个param,它是函数,通常称为next(),因为sails会等待它。

beforeCreate: function (values, next) {
    bcrypt.hash(values.password, 10, function(err, encryptedPassword){
        values.password = encryptedPassword;
        next();
    })
}