Alv*_*vin 3 javascript express
如何根据 http 状态代码执行 switch 语句以返回错误消息,我这样做了:
switch(true){
case err.status.test(/^4/): // 4xx
res.fail(err.status, err);
break;
case err.status.test(/^5/): // 5xx
res.error(err.status, err.message, {data: err});
break;
Run Code Online (Sandbox Code Playgroud)
我的正则表达式做对了吗?
test()是一种RegExp方法,所以它应该是:
case /^4/.test(err.status):
Run Code Online (Sandbox Code Playgroud)
我个人认为switch(true) { ... }是一种令人困惑的编码风格。我会把它写成:
switch(Math.floor(err.status/100)) {
case 4:
res.fail(err.status, err);
break;
case 5:
res.error(err.status, err.message, {data: err});
break;
}
Run Code Online (Sandbox Code Playgroud)