编程语言
首页 > 编程语言> > javascript-Sails.js / Waterline:findOne()与find()

javascript-Sails.js / Waterline:findOne()与find()

作者:互联网

TestController.js:

module.exports = {
    test: function(req, res) {
    User.findOne({}, function(err, found) {
      console.log(found);
      return res.send(found);
    })
  }
};

用户模型包含一个条目.运行此控制器时,发送的结果为null或未定义.
但是,如果将User.findOne({})替换为User.find({}),则突然发现变量是一个包含单个条目的数组:

[
  {
    "name": "Walter Jr",
    "createdAt": "2014-11-16T09:59:48.232Z",
    "updatedAt": "2014-11-16T09:59:48.232Z",
    "id": "5468759459f51a307b47bffd"
  }
]

为什么?

解决方法:

我没有想到这一点,但是为了让所有使用Google搜寻的人受益,这是发生了什么:

深入研究错误后,您会发现:

{
  "error": "E_UNKNOWN",
  "status": 500,
  "summary": "Encountered an unexpected error",
  "raw": {}
}

换句话说,Waterline的findOne总是需要某种查询才能找到一个项目.它不会自动找到任何列表中的第一个并返回它,这对于findOne而言还不够具体.

标签:sails-js,javascript,waterline
来源: https://codeday.me/bug/20191029/1956299.html