使用cookie进行Express代理API调用

时间:2017-12-18 14:41:51

标签: node.js express proxy

我正在使用express,我已经为我的应用程序模拟了API调用。

我可以使用任何代理将我的调用重定向到我的开发服务器吗?

下面是我的示例快递代码

logdata=logDataset[1:75,1]

当我在我的代码" http://localhost:3000/brand"中使用本地API运行我的应用程序时应该重定向到" http://www-dev.abc.com/brand"

在重定向之前,我还需要设置一个cookie,因为只有当有一个有效的cookie时,API才会提供数据。

我可以使用任何代理吗?你能提供任何例子吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么要求列表如下所示:

  1. express简单集成。
  2. 仅代理一个端点。
  3. 仅在本地环境中使用代理。
  4. 能够为代理请求设置Cookie。
  5. 代码示例

    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.com/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