if (Object.keys(errs).length) {
// 不执行该语句
ctx.body = {
msg: '表单信息不正确',
data: errs
}
// 换用该语句却可以输出
// ctx.throw(400, JSON.stringify(errs))
}
if (Object.keys(errs).length) {
// 不执行该语句
ctx.body = {
msg: '表单信息不正确',
data: errs
}
// 换用该语句却可以输出
// ctx.throw(400, JSON.stringify(errs))
}
程序执行完ctx.body会继续执行后面的代码,而执行ctx.throw会立即结束该方法。
// 执行下面一段代码
ctx.body = {
data: 1
}
ctx.body = {
data: 2
}
// 最终返回的是{data: 2}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
ctx.body 只是定义输出内容。只不过成功了才输出body的定义。失败了则输出throw的定义。根本问题是,你其他码执行报错了。