findOne({key:value}) 或 findOne().where({key:value}) 用水线查询数据库时?

findOne({key:value}) or findOne().where({key:value}) when querying database with waterline?

我正在使用 Waterline 通过 Sails 查询 MySQL 数据库。我找到了 2 种方法。
不知道哪个更好?
顺便问一下,如何处理这两种情况的错误?

1. Model.findOne().where({key: value}).then(function(data){
      console.log(data);})

2. Phase.findOne({key: value}).then(function(data){
      console.log(phase);})

两者都行。在该方法中,您会发现如下所示的错误。

1. Model.findOne().where({key: value}).then(function(data){
      console.log(data);}).catch(function(err){/*....*/})

2. Phase.findOne({key: value}).then(function(data){
      console.log(phase);}).catch(function(err){/*....*/})

另一种选择

Phase.findOne({key: value}).exec(function(err, data){
    if(err) /* Do something with error */  
    console.log(phase);
})

此外,如果您通过主键搜索,那么您可以

Phase.findOne(PK)

https://github.com/balderdashy/waterline-docs/blob/master/query.md#query-language