在React Router / React中快速转到直接链接

时间:2017-07-23 14:23:45

标签: javascript node.js reactjs express react-router

我正在为我的项目使用React Router 4,当我直接在浏览器中输入网址时{ "_id" : "item_a90a2086048057ac9", "home" : "FH>87218379012", "username:" : "Jon Doe2", "Apps" : { "game" : { "InVals" : { "ET" : { "et1" : 0, "et2" : 9, "et3" : 96, "et4" : 3218, "et5" : 6, "et6" : "65-AL", "et7" : "265-PL", "et8" : "4-GY" } }, "OutVals" : { "ET" : 4.00 } } }, "PAT" : 4 } 我收到以下错误。

  

无法获得/发布/ 1

我在快递服务器上的代码是

var resultsArray = [74, 4....,n];

我尝试使用localhost:8000/post/1上的app.get('/post/:id', function (req, res) { res.sendFile('./public/index.html', {root: __dirname}); }) 包来允许哈希爆炸,但它似乎也不正常。

如何修复此错误?并允许在我的项目中直接链接。感谢

1 个答案:

答案 0 :(得分:1)

对于由具有路由处理客户端的节点提供服务的应用程序,就像React和React-router一样,您需要为每个请求提供index.html。

将此信息(app.get)放在明文应用中的任何API路由下方。

var path = require('path');

app.get('/*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
});

这将确保您服务器上的非API调用请求为您的用户提供index.html。一旦客户端拥有index.html,内部路由将由React-routing处理。