0

我正在按照本教程为配置开发一个节点样式和 webpack Web 应用程序:教程

在教程中建议使用webpack dev 中间件来加速开发。我真的很想使用这个依赖,但我遇到了问题,因为我无法处理 HTTP POST(我可以在不使用它的功能的情况下处理它们)。

在 webpack-dev-middleware 的文档中(参见上面的链接),有一个名为 methods 的属性应该可以工作。正如您将在我的代码中看到的那样,我正在尝试使用它而没有任何结果。

如果我评论第一个 app.use(启用 webpack-dev-middleware 的那个)并取消评论第二个我无法处理 POST 请求。

服务器代码:

import path from 'path';
import express from 'express'; 
import webpack from 'webpack';
import webpackDevMiddleware from 'webpack-dev-middleware';
import config from '../../webpack.dev.config.js';

const router = express.Router();

const app = express(),
        DIST_DIR = __dirname,
        HTML_FILE = path.join(DIST_DIR, 'index.html'),
        compiler = webpack(config);

app.use(webpackDevMiddleware(compiler, {
    methods: [ 'GET', 'HEAD', 'POST' ],
    publicPath: config.output.publicPath
}));

//app.use(express.static(DIST_DIR));

router.post('/',(request,response) => {
    //code to perform particular action.
    //To access POST variable use req.body()methods.
    console.log('form process!');
});

app.use('/',router);

app.get('/', (req, res, next) => {
    compiler.outputFileSystem.readFile(HTML_FILE, (err, result) => {
    if (err) {
        return next(err);
    }
    res.set('content-type', 'text/html');
    res.send(result);
    res.end();
    })
});

const PORT = process.env.PORT || 8080;

app.listen(PORT, () => {
    console.log(`App listening to ${PORT}....`);
    console.log('Press Ctrl+C to quit.');
});
4

0 回答 0