express server在启动时返回错误

express server在启动时返回错误,express,server,webpack,Express,Server,Webpack,我很难弄清楚为什么我的服务器在启动时会返回错误。我没有使用WebpackDevServer,因为它不编译JS文件,所以我决定创建自己的服务器。当我打开浏览器时,它显示一条错误消息,上面写着: server.js: var webpack = require('webpack'), path = require('path'), express = require('express'), devMiddleware = require('webpack-dev-middle

我很难弄清楚为什么我的服务器在启动时会返回错误。我没有使用WebpackDevServer,因为它不编译JS文件,所以我决定创建自己的服务器。当我打开浏览器时,它显示一条错误消息,上面写着:

server.js

var webpack = require('webpack'),
    path = require('path'),
    express = require('express'),
    devMiddleware = require('webpack-dev-middleware'),
    hotMiddleware = require('webpack-hot-middleware'),
    config = require('./webpack.config'),
    app = express(),
    host = '127.0.0.1',
    port = 8000;

var middleware = devMiddleware(webpack({
  entry: path.join(__dirname, 'app/src/main.js'),
  output: {
    path: '/',
  }
}), {
  noInfo: true,
  publicPath: config.output.publicPath,
  index: path.join(__dirname, 'app/index.html'),
  stats: {
    colors: true
  }
});

app.use(middleware);

app.use(hotMiddleware(webpack(config)));

app.get('/', function(req, res) {
  res.write(middleware.fileSystem.readFileSync(path.join(__dirname, 'app/index.html')));
  res.end();
});

app.listen(port, host, function(err) {
  if (err) {
    console.error(err);
  }
  console.log('Listening on ' + host + ':' + port);
});
项目文件和目录:


我不明白为什么会这样。也许我错过了很多重要的插件或依赖项,使它像react hot loader一样成功?或者这不要紧?

从我看来,您不应该使用
中间件.fileSystem.readFileSync()
来处理
index.html
(这不是您的捆绑包的一部分)的请求

只需使用
fs.readFileSync()
或者最好使用
res.sendFile()


因此,我应该在我的
server.js
?@jst.16中要求使用
fs.readFileSync()
,然后是。好的。非常感谢。
app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname, 'app/index.html'));
});