Sails.js / Waterline:findOne()vs find()

时间:2014-11-16 10:48:38

标签: javascript sails.js waterline

TestController.js:

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

User模型包含一个条目。当此控制器运行时,发送的结果为nullundefined。 但是,如果将User.findOne({})替换为User.find({}),则found变量突然变为包含单个条目的数组:

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

为什么?

1 个答案:

答案 0 :(得分:4)

我不认为这是通过,但为了每个人的谷歌搜索的利益,这里是什么了:

一旦你深入了解err,你会发现:

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

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