我有一个包装 RESTful API 的 Node 模块。这个客户端遵循标准的节点回调模式:
module.exports = { 
    GetCustomer = function(id, callback) { ...} 
}
我从各种 Express 路由中调用该客户端,如下所示:
app.get('/customer/:customerId', function(req,res) {
 MyClient.GetCustomer(customerId, function(err,data) {
   if(err === "ConnectionError") {
     res.send(503);
    }
   if(err === "Unauthorized") {
     res.send(401);
    }
    else {
     res.json(200, data);
    }
  };
};
问题是我认为每次调用此客户端时检查“ConnectionError”并不是干的。我不相信我可以打电话res.next(err),因为这将作为 500 错误被退回。
我在这里缺少节点或 Javascript 模式吗?在 C# 或 Java 中,我会在 MyClient 中抛出适当的异常。