Sails.js Populate()在控制台中工作,但在控制器中不工作

Sails.js Populate()在控制台中工作,但在控制器中不工作,sails.js,waterline,Sails.js,Waterline,我一生都搞不清楚这件事。 如果我运行sails控制台并输入以下代码: User.findOne(1).populate('schools').exec(console.log) // logs user data and schools is populated` 然后我得到了我期望的结果。 但是,当我在控制器中运行完全相同的代码时,我仍然会获得所有用户信息,但是schools是一个空数组 routes.js: 'GET/getSchools':'UserController.getSchoo

我一生都搞不清楚这件事。 如果我运行
sails控制台
并输入以下代码:

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。将my node_modules文件夹中的sail恢复为0.11.0修复了该问题。我希望这能帮助那些控制台环境行为与控制器环境不同的人。谢谢@sgress454

导致此问题的原因是,我的本地Sails副本(在我的node_modules文件夹中)是版本0.11.1,而我的全局Sails是版本0.11.0。将my node_modules文件夹中的sail恢复为0.11.0修复了该问题。我希望这能帮助那些控制台环境行为与控制器环境不同的人。谢谢@sgress454

请分享更多详细信息,如控制器中的代码、您在控制器中有哪些可用的和类似的、您尝试过的(在控制器和控制台中、每个新问题都绝对需要重新研究的迹象和先前工作的详细信息)以及当前输出与预期输出@DanielBrose我尽量不透露细节,但我确实提供了重要的代码,看看你是否可以在这里提问:。它们可能也可以帮助您。请记住,
sails控制台
始终使用全局安装的sails,而
sails lift
node app.js
将使用本地安装的sails(如果可用)(即项目中有
node\u modules/sails
文件夹)。如果您确实在本地安装了Sails,请尝试运行
/node\u modules/Sails/bin/Sails.js控制台
,看看是否得到与提升时相同的结果。@sgress454非常有洞察力!我在node_模块中运行了代码,但失败了。我检查了版本,我的本地sails是0.11.1,而我的全局sails是0.11.0。我将本地值恢复为0.11.0,这就成功了!