Koa - yield 错误处理的最佳实践

Koa - Best practice for yield error handling

我正在 Koa.js 中动手并正在寻找有关生成器的 returned 错误处理的最佳实践(如果有的话)。采取以下措施:

var sql = require('./lib/sql');

app.use(function *(){
  var results = yield sql.query('select top 1 * from farm_animals;');
  this.body = results;
});

现在,我习惯的传统方法是:

sql.query('select top 1 * from farm_animals;', function(err, data){
  if (!err) {
    // return data
  }
});

现在我已经将 sql.query 转换为 Promise,我不能 return errdata。那么,在 return 处理数据时,我应该 return 怎样正确地通知我错误?也许我可以采用并坚持一些标准:

{
  error: null,
  data: { id: 1, animal: 'cow' },
}

然而,在我这样做之前,我想确保没有遗漏一些公认的最佳实践。

您可以使用 try/catch 个方块。

查看以下答案了解更多详情: Error handling with promises in Koa