我有一条Express路由,使用response.json
来返回响应。但是,我无法弄清楚如何用它捕获错误案例。如果我这样做:
try {
response.json();
} catch (e){
response.send('it went wrong!'
}
或者如果我这样做:
.then(() => response.json())
.catch(() => response.send('it went wrong!')
我收到Can't set headers after they are sent
错误。
这是有道理的,因为json
会调用end
,并且您无法在调用end
后设置标头。但是,如果我在json
发生错误后无法编辑响应,那么在这种情况下如何才能返回错误响应?
答案 0 :(得分:1)
...或者您可以随时查看:
if (!res.headerSent) {
// do your stuff end with res.json(), res.end(), res.render() or whatever you need
}