也许是愚蠢的问题。
我最近一直在玩 Node.js,喜欢设置服务器和发出请求等是多么容易。我还没有尝试过,但想知道如何将数据从一个请求转发到另一台服务器,并有第二个服务器向客户端发送响应。
这可能吗?
i.e.
客户端 -> 服务器 A -> 服务器 B -> 客户端 X
让我感到困惑的是如何发送给同一个客户?此信息应该出现在请求标头中,不是吗?是否需要将该信息转发给服务器 B?
我现在的情况是在 Node.js 服务器上接受请求,并且希望将一些数据转发到我创建的 Laravel API 并将响应发送到客户端表单。
感谢您的回答,
Matt
这很容易做到request https://github.com/request/request module.
下面是“服务器 A”的示例实现,它将所有请求按原样传递到服务器 B,并将其响应发送回客户端:
'use strict';
const http = require('http');
const request = require('request').defaults({ followRedirect : false, encoding : null });
http.createServer((req, res) => {
let endpoint = 'http://server-b.example.com' + req.url;
req.pipe(request(endpoint)).pipe(res);
}).listen(3000);
代替request
你也可以用http https://nodejs.org/api/http.html模块,但是request
让一切变得更容易。
任何要求http://server-a.example.com/some/path/here
将传递到服务器 B,具有相同的路径(+方法、查询字符串、正文数据等)。
followRedirect
and encoding
在将请求传递到其他服务器时,我发现这两个选项很有用。他们被记录在案here https://github.com/request/request#requestoptions-callback.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)