【问题标题】:Proxy webpack-dev-server based on request payload to return json file基于请求负载的代理 webpack-dev-server 返回 json 文件
【发布时间】:2017-05-17 07:17:20
【问题描述】:

所以我已经搜索过,我认为我看到了整个互联网,但没有解决我遇到的问题。

我有多个要模拟的 http 请求。所有请求都具有相同的 url,但根据包含 graphQl 查询的 requestPayload 有所不同。基于此查询,我想返回一个特定的 json 文件。我发现的所有代理设置都可以处理参数,但不处理基于 requestPayload 的响应。

【问题讨论】:

  • 你找到解决办法了吗?
  • 很遗憾,我没有

标签: json mocking webpack-dev-server endpoint


【解决方案1】:

你看过这个功能吗?

https://webpack.js.org/configuration/dev-server/#devserver-before

只要 webpack-dev-server 是 express 应用程序的一个实例,您就可以在 before/after 挂钩中设置它。 Hooks 获取应用(服务器)实例作为第一个参数。

所以对于您的情况,您的 webpack 开发配置如下所示:

module.exports = {
  //...
  devServer: {
    before: function(app) {
      var bodyParser = require('body-parser');
      app.use(bodyParser.json());

      app.get('/some/path/graphql', function(req, res) {
        var query = req.body;
        // ...your custom logic of 
        // specific query handling goes here

        if (condition(query)) {
           res.json({ mockedResponse: 'foo' });
        } else {
           res.json({ mockedResponse: 'bar' });
        }
      });
    }
  }
};

UPD:请记住,如果您正在为 devServer 使用代理配置,您可能希望使用 after 挂钩而不是 before 来让您的请求在需要时被代理。

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 2018-12-19
    • 2016-07-25
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多