Ale*_*aro 3 request node.js express
使用NodeJS和Express,我将请求与request模块代理在一起。然后,当收到响应时,我需要将cookie设置为先前的响应,然后将其发送回客户端。
app.use('/api', function(req, res) {
var options = {
url : constants.API_COMPLETE_URL + '/api' + req.url
};
req.pipe(request(options, function (err, backendResponse) {
if (err) {
res.status(501).send(err);
return;
}
setCookiesToResponse(res, backendResponse);
backendResponse.pipe(res);
}));
});
Run Code Online (Sandbox Code Playgroud)
但是,backendResponse.pipe(res.body)主体是经过编码的。最好的方法是什么?
const express = require('express')
const request = require('request')
const app = express()
app.use('/', (req, res) => {
// change url accordingly
const proxy = request({ url: 'http://www.google.com' + req.path })
proxy.on('response', proxyResponse => {
// proxyResponse is an object here
res.cookie('yourCookie', 'works!', {
maxAge: 900000,
httpOnly: true
})
}).pipe(res)
// catch errors with proxy.on('error', err => {})
req.pipe(proxy)
})
app.listen(8900, () => console.log('Listening...'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2253 次 |
| 最近记录: |