Populate() 在控制台中有效,但在控制器中无效
Populate() works in console, but not in controller
我这辈子都想不通。
如果我 运行 sails console
并输入以下代码:
User.findOne(1).populate('schools').exec(console.log)
// logs user data and schools is populated`
然后我得到了我期望的结果。
但是,当我 运行 在控制器中使用完全相同的代码时,我仍然可以获得所有用户信息,但是 schools
是一个空数组。
routes.js:
'GET /getSchools': 'UserController.getSchools'
UserController.js:
module.exports = {
getSchools: function(req, res) {
User.findOne(1).populate('schools').exec(console.log)
// logs user data but schools is empty array
}
}
为什么会这样,我如何让它在控制器中工作?
编辑: 这个问题是因为我的本地 Sails 副本(在我的 node_modules 文件夹中)是 0.11.1 版,而我的全局 Sails 是 0.11 版。 0。将我的 node_modules 文件夹中的 Sails 恢复为 0.11.0 解决了这个问题。我希望这对控制台环境与控制器环境行为不同的其他人有所帮助。谢谢@sgress454!
这个问题是因为我的本地 Sails 副本(在我的 node_modules 文件夹中)是 0.11.1 版,而我的全局 Sails 是 0.11.0 版。将 node_modules 文件夹中的 Sails 恢复为 0.11.0 解决了这个问题。我希望这对控制台环境与控制器环境行为不同的其他人有所帮助。谢谢@sgress454!
我这辈子都想不通。
如果我 运行 sails console
并输入以下代码:
User.findOne(1).populate('schools').exec(console.log)
// logs user data and schools is populated`
然后我得到了我期望的结果。
但是,当我 运行 在控制器中使用完全相同的代码时,我仍然可以获得所有用户信息,但是 schools
是一个空数组。
routes.js:
'GET /getSchools': 'UserController.getSchools'
UserController.js:
module.exports = {
getSchools: function(req, res) {
User.findOne(1).populate('schools').exec(console.log)
// logs user data but schools is empty array
}
}
为什么会这样,我如何让它在控制器中工作?
编辑: 这个问题是因为我的本地 Sails 副本(在我的 node_modules 文件夹中)是 0.11.1 版,而我的全局 Sails 是 0.11 版。 0。将我的 node_modules 文件夹中的 Sails 恢复为 0.11.0 解决了这个问题。我希望这对控制台环境与控制器环境行为不同的其他人有所帮助。谢谢@sgress454!
这个问题是因为我的本地 Sails 副本(在我的 node_modules 文件夹中)是 0.11.1 版,而我的全局 Sails 是 0.11.0 版。将 node_modules 文件夹中的 Sails 恢复为 0.11.0 解决了这个问题。我希望这对控制台环境与控制器环境行为不同的其他人有所帮助。谢谢@sgress454!