使用cookie进行Express代理API调用
我正在使用express我已经为我的应用程序模拟了API调用。
是否有任何代理可用于将我的调用重定向到我的开发服务器?
下面是我的示例快递代码
var express = require('express');
var app = express();
var path = require('path');
var cors = require('cors');
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'dist')));
app.get('/brand', function(req,res){
res.send({"brand":"Cadillac","origin":"USA"});
});
当我在本地运行我的应用程序时,我的代码“http://localhost:3000/brand”中的API应该重定向到“”
在重定向之前,我还需要设置一个cookie,因为API只有在有效的cookie时才会提供数据。
我可以使用任何代理吗?你能提供任何例子吗?
回答如下:如果我理解你的话,那么你的要求清单如下:
- 与
express
简单集成。 - 代理只有一个端点。
- 仅在本地环境中代理。
- 能够为代理请求设置cookie。
代码示例:
var express = require('express');
var app = express();
var path = require('path');
var proxy = require('express-http-proxy');
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'dist')));
if (process.env.NODE_ENV === 'production') {
app.get('/brand', function(req,res){
res.send({"brand":"Cadillac","origin":"USA"});
});
} else {
app.use('/brand', proxy('http://www-dev.abc/brand', {
proxyReqOptDecorator: function(proxyReqOpts, srcReq) {
proxyReqOpts.headers['cookie'] = 'cookie-string';
return proxyReqOpts;
}
}));
}
app.listen(8000);
评论:
- 为了检查环境类型,我使用了建筑
process.env.NODE_ENV === 'production'
- 满足您要求的最佳软件包是express-http-proxy,但是如果您需要代理多个端点,那将是非常痛苦的。在这种情况下检查http-proxy。