Javascript Sails.js对象在填充后具有未定义的集合
每当我在Sails.js中填充集合时,值都会填充在Javascript Sails.js对象在填充后具有未定义的集合,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,每当我在Sails.js中填充集合时,值都会填充在modelName.associations.collectionName.value中。modelName.collectionName的值始终是未定义的,即使当我将对象表示为JSON时,所有内容都完美地显示出来 以文档()中给出的多对多关系为例,如果执行以下查询: User.findOne(1) .populate('pets') .exec(function(err, owner) {...}); 我将在owner.association
modelName.associations.collectionName.value
中。modelName.collectionName
的值始终是未定义的,即使当我将对象表示为JSON时,所有内容都完美地显示出来
以文档()中给出的多对多关系为例,如果执行以下查询:
User.findOne(1)
.populate('pets')
.exec(function(err, owner) {...});
我将在owner.associations.pets.value
中获取pets集合,但owner.pets
未定义
你知道这是怎么回事吗
编辑:
我已经复制了文档中给出的完全相同的示例(相同的Pet.js
、User.js
和bootstrap.js
),并且我已经通过以下方式覆盖了User.js
的findOne
蓝图:
findOne: function (req, res) {
User.findOne(req.params.id)
.populate('pets')
.exec(function(err, owner) {
if (err) return res.send(err, 500);
return res.json(owner);
});
}
正如我所预料的,JSON响应是正常的,但是如果我在exec(..)
函数中设置断点,owner.pets
是未定义的。数据仅在owner.associations.pets.value
中
这可能是我的Sails.js版本吗?它是0.10.0-rc11。
model.associations.pets.value
本质上是一个私有API,您不应该依赖它。在没有看到实际的模型和查询代码的情况下,很难说您的问题是什么,但是如果您的示例与上面的示例非常相似,那么我可以看到的第一个问题是您没有向findOne
调用发送任何条件--它至少需要一个主键,或者一个具有查询条件的对象,例如{name:'dan}。是的,我忘了。。。编辑。我将尝试复制与文档中相同的示例,看看是否得到相同的结果。