如何处理node.js中的回调错误

如何处理node.js中的回调错误,node.js,Node.js,我是node.js的新手,我有一个要求,我试图处理回调方法/函数返回的错误。如何将作为回调的一部分发送的错误分配给响应负载 我为验证swagger而调用的节点模块既支持回调函数,也支持Promise 那么,如何将err分配给响应负载呢。目前,我只是登录到我的控制台,但由于我们计划通过API公开这一点,我希望在响应负载中返回错误信息 var express=require('express'); var swagger-parser=require('swagger-parser'); var

我是node.js的新手,我有一个要求,我试图处理回调方法/函数返回的错误。如何将作为回调的一部分发送的错误分配给响应负载

我为验证swagger而调用的节点模块既支持回调函数,也支持Promise

那么,如何将err分配给响应负载呢。目前,我只是登录到我的控制台,但由于我们计划通过API公开这一点,我希望在响应负载中返回错误信息

var express=require('express');
var swagger-parser=require('swagger-parser');
var myParser=require(“主体解析器”);
var-app=express();
var fs=要求(“fs”);
use(myParser.urlencoded({extended:true}));
use(myParser.json());
函数errorHandler(err、req、res、next){
资源状况(500)
res.render('error',{error:err})
}
app.post('/v1/swagger/validate',函数(请求、响应){
/**SwaggerParser.validate(request.body,函数(err,api){
如果(错误){
控制台错误(err);
控制台日志(“内部错误”);
}
否则{
console.log(“API名称:%s,版本:%s”,API.info.title,API.info.Version);
控制台日志(“内部成功”);
}
}); **/
SwaggerParser.validate(request.body)
.then(函数(api){
console.log(“API名称:%s,版本:%s”,API.info.title,API.info.Version);
})
.catch(函数(err){
控制台错误(err);
});
response.end();
});

app.listen(8082)您可以决定如何将错误从API传回

如果错误是服务器内部的,而不是由糟糕的API请求直接导致的,则可能返回500状态码(内部服务器错误)

如果有一些有意义的东西需要与API的另一端进行通信(比如查询未找到任何内容或特定的验证错误),那么您必须设计您想要的东西。例如,您可以发回一些JSON:

response.json({result: null, msg: "Validation Failed"});

因此,对于给定的情况,您希望API返回什么,这实际上取决于您自己。主要的一点是,您决定您想要的响应是什么,并将其作为响应发送,即使在错误情况下也是如此。您需要使其设计对API的使用者有意义,以便他们能够清楚地知道何时有正确的结果,何时有错误,如果错误是他们的错误,他们需要能够根据响应告诉为什么是他们的错误(因此,他们认为你在回复中提供的问题越详细越好).

@DarshanShivashankar-这回答了你的问题吗?如果回答了,那么你可以通过单击答案左侧的绿色复选标记向社区表明这一点。这也将为你在堆栈溢出问题上遵循正确的程序赢得一些声誉点数。
response.json({result: null, msg: "Validation Failed"});