我正在按照本教程为配置开发一个节点样式和 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.');
});