koa执行不到ctx.body 却可以执行ctx.throw。

新手上路,请多包涵

if (Object.keys(errs).length) {

// 不执行该语句
ctx.body = {
   msg: '表单信息不正确',
   data: errs
 }
// 换用该语句却可以输出
// ctx.throw(400, JSON.stringify(errs))

}

阅读 3.2k
2 个回答

ctx.body 只是定义输出内容。只不过成功了才输出body的定义。失败了则输出throw的定义。根本问题是,你其他码执行报错了。

新手上路,请多包涵

程序执行完ctx.body会继续执行后面的代码,而执行ctx.throw会立即结束该方法。

// 执行下面一段代码
ctx.body = {
    data: 1
}
ctx.body = {
    data: 2
}
// 最终返回的是{data: 2}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题