我正在尝试执行以下操作:
// Task Model
module.exports = {
schema: true,
attributes: {
directProy: {
type: 'string',
required: true
},
user: {
type: 'string',
required: true
},
checkUser: {
type: 'boolean',
defaultsTo: false
},
proy: {
type: 'string',
required: true
},
pieza: {
type: 'string',
required: true
},
hours: {
type: 'string',
required: true
},
obs: {
type: 'text',
defaultsTo: "lorem ipsum"
},
check: {
type: 'boolean',
defaultsTo: false
},
userName: function() {
User.findOne(this.user).done(function(err, user){
if(err){ return err;}
return user.name;
});
}
}
};
在方法“userName”中,我试图获取具有存储在“user”属性中的ID的用户的名称。
但是当我运行“用户名”方法时,让我回到“未定义”,我认为这必须是异步类型的问题
非常感谢他们给我的帮助,因为我不知道如何在模型之间关联值,这是非常有用的
答案 0 :(得分:1)
尝试传递回调。
userName: function(cb) {
User.findOne(this.user).done(function(err, user){
cb(err, user.name);
});
}
然后,当您调用它时,请确保传递回调。
model.userName(function(err, username) {
console.log(username);
});
答案 1 :(得分:0)
您应该使用.exec
代替.done
,因为它不会在sails@0.10中提供
http://beta.sailsjs.org/#/documentation/reference/Models