反应路由器4并表达:无法获取

tro*_*gne 0 express reactjs react-router

我正在尝试对Express服务器使用React Router 4。

如果我将路径设置为“ /”,它将起作用。但是,如果我将路径设置为“ / test”,并访问测试,则会得到“ Cannot GET / test”。是因为React Router 4与Express不兼容吗?

app-client.js:

import { BrowserRouter, Route, Switch } from 'react-router-dom';
import Board from './components/Board';

ReactDOM.render(
    <BrowserRouter>
        <div>
            <Route path="/test" component={Board} />
        </div>
    </BrowserRouter>
    , document.getElementById('react-container'));
Run Code Online (Sandbox Code Playgroud)

Board.js:

var React = require('react');
var createReactClass = require('create-react-class');

var Board = createReactClass({
    render(){
        return (<h1>Board</h1>)
    }    
});

export default Board;
Run Code Online (Sandbox Code Playgroud)

Amr*_*Aly 5

为了确保在定义所有快递路线后,所有路线均由React处理,我们将确保快递应用中未处理的所有路线都将重定向到index.htmlreact应用中要处理的路线,如下所示:

// All expressjs routes
// then
app.get('*', (req, res) => {                       
  res.sendFile(path.resolve(__dirname, 'the path to your react project', 'index.html'));                               
});
Run Code Online (Sandbox Code Playgroud)