Node.js 如何将数据从第一台服务器发送到另一台服务器,并在nodejs的第一台服务器中获得其他服务器响应?

Node.js 如何将数据从第一台服务器发送到另一台服务器,并在nodejs的第一台服务器中获得其他服务器响应?,node.js,express,Node.js,Express,我想在服务器1上发出请求或api调用,然后该服务器自动向服务器2发出请求并将响应发送回服务器1。我正在使用NodeJs和Express 例如: app.post('/api/Is', function(req, response, callback) { }) 我在postmain中将该API称为: 因此,它应该自动继续并将响应发送回呼叫。 我应该只调用,在后端代码中,它将接收请求正文并将其传递给,然后将响应发送回您需要使用任何库从server1调用server2。下面是我正在使用的代码获取

我想在服务器1上发出请求或api调用,然后该服务器自动向服务器2发出请求并将响应发送回服务器1。我正在使用NodeJs和Express

例如:

app.post('/api/Is', function(req, response, callback) {

})
我在postmain中将该API称为:

因此,它应该自动继续并将响应发送回呼叫。
我应该只调用,在后端代码中,它将接收请求正文并将其传递给,然后将响应发送回

您需要使用任何库从server1调用server2。下面是我正在使用的代码获取库

安装fetch库的步骤

npm install node-fetch --save

//服务器1//
const fetch=require('node-fetch');
router.get(“/api/Is”),异步(req,res)=>{
试一试{
让{success,data}=wait getDataFromServer2(req);
if(success)返回res.send({success:true,data:data})
res.send({success:false})
}捕获(e){
res.send({success:false})
}
});
函数getDataFromServer2(req){
返回获取('http://localhost:5000//api/Is', { 
方法:“post”,
正文:req,
标题:{'Content-Type':'application/json'},
}).then(res=>res.json())
。然后((响应)=>{
返回{
成功:没错,
数据:答复
}
}).catch((错误)=>{
抛出新错误(“无法获取角色”)
})

}
您需要使用任何库从server1向server2进行API调用。下面是我正在使用的代码获取库

安装fetch库的步骤

npm install node-fetch --save

//服务器1//
const fetch=require('node-fetch');
router.get(“/api/Is”),异步(req,res)=>{
试一试{
让{success,data}=wait getDataFromServer2(req);
if(success)返回res.send({success:true,data:data})
res.send({success:false})
}捕获(e){
res.send({success:false})
}
});
函数getDataFromServer2(req){
返回获取('http://localhost:5000//api/Is', { 
方法:“post”,
正文:req,
标题:{'Content-Type':'application/json'},
}).then(res=>res.json())
。然后((响应)=>{
返回{
成功:没错,
数据:答复
}
}).catch((错误)=>{
抛出新错误(“无法获取角色”)
})

} /代码> 我认为您可以考虑使用代理LIB,例如“节点HTTP代理”,最简单的方法。 否则,您必须使用“http moudle”传输请求和响应,如下所示(无调试,不确定它是否能正常工作~):


我认为您可以考虑使用代理LIB,比如“节点HTTP代理”,最简单的方法。 否则,您必须使用“http moudle”传输请求和响应,如下所示(无调试,不确定它是否能正常工作~):


您想要的是代理/传递API,对吗?您想要的是代理/传递API,对吗?关于使用节点http代理的好建议。还请注意,您的http本机代码可能会得到改进,因为响应是一个可读的流,因此您可以通过管道将其传输到响应可写流,而不是像您那样附加块并一次性发送,从而获得语法和性能优势。@Paul是的,您是对的。如果不需要任何带有响应的进程,那么使用流是最佳选择。关于使用节点http代理的好建议。还请注意,您的http本机代码可能会得到改进,因为响应是一个可读的流,因此您可以通过管道将其传输到响应可写流,而不是像您那样附加块并一次性发送,从而获得语法和性能优势。@Paul是的,您是对的。如果不需要任何带有响应的进程,那么使用流是最佳选择。我需要一个像。。。其中第一个请求将位于服务器1和后端。。它会将请求主体参数传递给第二个服务器,并将响应发送回服务器一…谢谢,但我需要这样的代码。。。。。我在server1/api上调用api,然后它会自动在server2/api上运行,并在server1/api上将结果返回给我,这意味着仅在server1上调用我的api。。。。它基本上在server2上运行,并在Server1上返回结果。我需要像。。。其中第一个请求将位于服务器1和后端。。它会将请求主体参数传递给第二个服务器,并将响应发送回服务器一…谢谢,但我需要这样的代码。。。。。我在server1/api上调用api,然后它会自动在server2/api上运行,并在server1/api上将结果返回给我,这意味着仅在server1上调用我的api。。。。它基本上在server2上运行,并在server1上返回结果