我有两种型号:
User
,由一对多引用关联
Member
.
使用者
从
成员
getName
,这将首先填充“user”字段,然后从以下模板调用时返回一个值:
<p><%= data.members[i].getName() %></p>
但我只能在模板中得到“未定义的”(而我可以从getName函数内部在控制台中打印好的值)。我想这是因为我必须查询基,所以getName是异步的,并返回一个承诺。
以下是我的模型:
/**
* User.js
*/
module.exports = {
attributes : {
firstName : 'string',
lastName : 'string',
}
}
/**
* Member.js
*/
module.exports = {
attributes : {
user : {
model : 'User'
},
getName: function()Â {
return Member
.findOne({ id : this.id })
.populate('user')
.exec(function(err, member) {
if(err) return err;
return member.user.firstName +' '+ member.user.lastName;
});
}
}
}
P、 美国:这可以通过从控制器而不是模型中填充“user”字段来解决,但我还有另一个类似的问题,它遵循相同的原则。