我正在使用sails.js来开发我的第一个应用。我有一个waterline模型,如下所示。
//ModelA.js
module.exports = {
attributes: {
//more attributes
userId: {
model: 'user'
},
//more attributes
}
};
我在我的一个控制器中使用该模型,如下所示。
ModelA.find(options)
.populate('userId')
.exec(function (err, modelA) {
//some logic
//modelA.userId is undefined here
res.json(modelA); //userId is populated in the JSON output
});
如何访问模型中的填充值?
答案 0 :(得分:1)
ModelA.find
返回项目数组。
ModelA.find(options)
.populate('userId')
.exec(function (err, results) {
console.log(results[0].userId) //results is an array.
//res.json(modelA);
});
或者您可以将ModelA.findOne
用于单个记录
答案 1 :(得分:1)
这是因为find返回一组记录。您必须使用index来访问该对象,然后使用该对象的userId。
ModelA.find(options).populate('userId').exec(function (err, recordsOfModelA) {
if(err) console.log(err);
else console.log(recordsOfModelA[0].userId)
});