Api JSON错误响应,条件疯狂
我有一个正在生成的函数,它返回一个JSON主体。我已经列出了许多不同的响应和响应中可能存在的值。我只是想把JSON吐出来 我意识到大多数API一次只会吐出一个错误,但它们的API是另一种选择,如果您考虑表单验证中的错误消息(例如,char length,char,ready take),您希望同时出现所有这些错误,并且一次只出现一个错误会很烦人 我的问题是:是否有一种合理的更干净的方法来委托嵌套或长if语句 我可以使用条件语句的数组或对象吗?有没有一个模块可以完成这项工作Api JSON错误响应,条件疯狂,api,node.js,error-handling,Api,Node.js,Error Handling,我有一个正在生成的函数,它返回一个JSON主体。我已经列出了许多不同的响应和响应中可能存在的值。我只是想把JSON吐出来 我意识到大多数API一次只会吐出一个错误,但它们的API是另一种选择,如果您考虑表单验证中的错误消息(例如,char length,char,ready take),您希望同时出现所有这些错误,并且一次只出现一个错误会很烦人 我的问题是:是否有一种合理的更干净的方法来委托嵌套或长if语句 我可以使用条件语句的数组或对象吗?有没有一个模块可以完成这项工作 var output
var output = {};
output.errors = [];
request(options, function(err, response, body){
if(err){
output.errors.push("request error ["+err.message+"]");
}else{
if((typeof request !== "undefined") && response && dotty.exists(response, "statusCode") && response.statusCode !== 200){
output.errors.push("response status code "+response.statusCode);
}
if((typeof body !== "undefined") && body){
if(dotty.exists(body, "countryCode") && dotty.exists(body, "countryName") && body.countryCode == "-" && body.countryName == "-"){
output.errors.push("no country code or name present in response");
}else if(body && dotty.exists(body, "countryCode") && body.countryCode == "-" && body.countryCode !== "" ){
output.errors.push("no country code in response");
}else if(body && dotty.exists(body, "countryName") && body.countryName == "-" && body.countryCode !== "" ){
output.errors.push("no country name in response");
}
if(dotty.exists(body, "statusCode") && body.statusCode == "ERROR"){
output.errors.push(body.statusCode);
}
if(dotty.exists(body, "countryCode") && body.countryCode !== "-" && body.countryCode !== "" ){
if(!dotty.exists(output,"country")) output.country = {};
output.country.code = body.countryCode;
}
if(dotty.exists(body, "countryName") && body.countryName !== "-" && body.countryCode !== "" ){
if(!dotty.exists(output,"country")) output.country = {};
output.country.name = body.countryName;
}
}else{
output.errors.push("no body");
}
}
if(output.errors.length == 0) output.errors = false;
res.jsonp(output);
}
这种疯狂的极限是什么?我使用了节点模块,它有一个非常好的函数调用,它有助于划分过程中发生的每件事情