如何让webpack-dev-server接受POST请求

时间:2017-11-22 19:31:23

标签: post webpack webpack-dev-server

在我的项目中,我打电话给:

$ webpack-dev-server --history-api-fallback

它启动了localhost:8080上可用的快速服务器(我假设)。

除了我想通过POST将表单提交到加载我的应用程序的iframe之外,它的效果很好;开发中的localhost:8080和生产中的其他东西。

我不希望在开发过程中对POST数据做任何事情,但在生产中,它需要POST。

当我尝试使用POST时,它cannot find POST /

是否有配置选项或其他解决方案允许我使用webpack-dev-server? (我真的不想为此编写我自己的服务器。)

2 个答案:

答案 0 :(得分:2)

您要找的是devServer。贝娄,你可以看到我的配置。在setup(app)下,您可以添加"几乎"无论你想要什么:

module.exports = {
    ...,
    devServer: {
        inline: true,

        port: 3000,

        publicPath: '/',

        setup(app){

            var bodyParser = require('body-parser');    
            app.use(bodyParser.json());

            app.get("/get/some-data", function(req, res){
                console.log(req);
                res.send("GET res sent from webpack dev server")
            })

            app.post("/post/some-data", bodyParser.json(), function(req, res){
                console.log(req.body);
                res.send("POST res sent from webpack dev server")
            })
        }
    }
}

修改 如果你想要更好看的话,我已经把简约example推到了github。

答案 1 :(得分:0)

通过将POST请求转换为GET请求来检查是否解决了您的问题:

bypass: function (req, res, proxyOptions) {

      const url = req.url;
      req.method = 'GET';
      if (url.indexOf('?') > -1) {

        return url.replace('?', '.json?');
      } else {

        return url + '.json';
      }
    }