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

时间:2015-09-04 01:56:22

标签: sails.js waterline

对于我的生活,我不能想出这个。 如果我运行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!

1 个答案:

答案 0 :(得分:1)

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

相关问题