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!