请求总是返回空错误对象

我使用Request和标准的Node.js HTTP模块来编写一个简单的rest服务。

现在,服务器端请求处理程序如下所示:

response.writeHead("400","Nope"); response.end(); 

客户端代码如下所示:

 request.get(href,handleResponse); function handleResponse(error,response,body) { console.log(arguments); } 

response.statusCode400 ,但error始终为null

我需要做什么服务器端获取请求模块来识别响应是一个错误?

请求响应成功收到时没有错误。 错误对象只在请求本身错误而不是响应表示错误时才填充。 从文档中: 如果在请求过程中遇到任何错误(包括DNSparsing,TCP级错误或实际的HTTPparsing错误),则在返回的请求对象上发出“错误”事件。

请求 – >成功响应(可能代表远程错误) – >响应填充

请求 – >错误发生在本地或通信到远程(没有响应或无法识别的响应) – >错误填充

我不喜欢这个默认行为。 我还不确定,但我甚至可以创build一些包装request实用方法来更改它。 我的包装callback将是这样的:

 function(connError, httpResponse, body) { let error = null; if(connError) { error = connError; } else if(httpResponse.statusCode != 200) { error = body; body = null; } finalCallback(error, body); }