Node.js 当远程服务器的管道响应时,膝关节炎错误的HTTP状态消息

Node.js 当远程服务器的管道响应时,膝关节炎错误的HTTP状态消息,node.js,koa,Node.js,Koa,我有服务器A和服务器B。客户端从服务器A请求文件,服务器A从服务器B获取文件。 当客户机请求一个存在的文件时,这可以正常工作,但当客户机请求一个不存在的文件时,会收到错误的http状态消息 问题: 当客户端应为“404未找到”时,它在状态行中收到“404 OK”。无论我发送什么状态代码,状态消息总是“OK”,但客户端总是收到我设置的状态代码(301、402等)。 此外,服务器A确实收到了正确的状态消息,并且出于任何原因,服务器A似乎传播了状态代码,但没有传播消息 服务器A代码: import r

我有服务器A和服务器B。客户端从服务器A请求文件,服务器A从服务器B获取文件。 当客户机请求一个存在的文件时,这可以正常工作,但当客户机请求一个不存在的文件时,会收到错误的http状态消息

问题:

当客户端应为“404未找到”时,它在状态行中收到“404 OK”。无论我发送什么状态代码,状态消息总是“OK”,但客户端总是收到我设置的状态代码(301、402等)。 此外,服务器A确实收到了正确的状态消息,并且出于任何原因,服务器A似乎传播了状态代码,但没有传播消息

服务器A代码:

import request from 'request'

context.response.body = request( my_url );

//request( my_url, (error, response, body) =>
//{
//   console.log( "message: " + response.statusMessage );  //prints 'Not Found'
//});
服务器B代码:

context.response.status = 404; 
context.response.message = 'Not Found';
context.response.body = 'Page not found';
我做错了什么

编辑:

我找到了一个“解决办法”,但我希望有更好的办法。 在服务器A中,我将代码更改为:

let stream = request( my_url );

stream.on( 'response', function( response )
{
    context.response.message = response.statusMessage;
});

contest.response.body = stream;

不过,我不能说我对此感到满意,因为发布状态代码而不是消息似乎很愚蠢。

你能试试
context.response=request(my_url)
?@GPX看起来很直观,但不幸的是根本不起作用。我在响应主体中没有定义,甚至状态代码也没有显示(以前是工作的)。嗯,可能是
请求
模块装饰了响应。如果您想找到根本原因,可以尝试通过原始
http
调用服务器B吗?