Node.js 修改节点http代理请求正文
我正在使用Node.js 修改节点http代理请求正文,node.js,express,node-http-proxy,Node.js,Express,Node Http Proxy,我正在使用node http proxy尝试在我的node/express web服务器中代理请求。我试图在路由级别将主体附加到特定请求中,但得到的响应表明req.body不存在 const proxy = httpProxy.createProxyServer({ changeOrigin: true, target: process.env.API_URL, port: 80 }); server.post('/api/login_check', (req, re
node http proxy
尝试在我的node/express web服务器中代理请求。我试图在路由级别将主体附加到特定请求中,但得到的响应表明req.body
不存在
const proxy = httpProxy.createProxyServer({
changeOrigin: true,
target: process.env.API_URL,
port: 80
});
server.post('/api/login_check', (req, res) => {
req.url = req.url.replace('/api', '');
req.headers['Content-Type'] = 'application/json';
req.headers['accept'] = 'application/json';
req.body = JSON.stringify({
username: process.env.USERNAME,
password: process.env.PASSWORD
});
proxy.web(req, res);
});
如果我正确理解您的意思,那么在路由级别使用
节点http代理是否可以做到这一点
- 只要您传递req和res对象,proxy.web就可以在路由级别工作
- 您可以在代理事件上更改传入请求的正文
proxy.on('proxyReq',函数(proxyReq,req,res,options){
//她说,你可以创造条件确定你的路径
if(req.body&&req.url==“/user”&&req.method==“POST”){
让bodyData=JSON.stringify(req.body);
proxyReq.setHeader('Content-Length',Buffer.ByTeleLength(bodyData));
//流式传输内容
proxyReq.写入(bodyData);
}
});代码>