单页应用的快速路由似乎不起作用

时间:2016-11-07 17:50:49

标签: javascript node.js express

我有简单的server.js文件,如下所示:

const express = require('express');
const app = express();

app.set('port', (process.env.PORT || 3031));

if (process.env.NODE_ENV === 'production') {
  app.use(express.static('build'));
  app.get('*', (req, res) => {
    res.sendFile('build/index.html');
  })
}

app.listen(app.get('port'), (error) => {
  if (error) return console.error(error.message);
  console.log(`Server started at: http://localhost:${app.get('port')}/`);
})

我希望它能在生产中重新路由到index.html的所有路径并启动服务器。目前路由位似乎不起作用,因为我收到以下错误:

  

服务器起始于:http://localhost:3031/ TypeError:path必须是   绝对或指定root到res.sendFile

2 个答案:

答案 0 :(得分:0)

尝试将根目录添加到路径

res.sendFile(__dirname + '/build/index.html');

答案 1 :(得分:0)

res.sendFile需要一个绝对路径,就像错误所说的那样。

尝试使用__dirname global

res.sendFile(__dirname + 'build/index.html');