The express jsx engine shows just a blank html page on the browser when i render the file which has the Router tag. Can someone guide or point out what i am doing wrong? Part of the relevant server setup:
const express = require("express");
const reactEngine = require('express-react-views');
let app = express();
app.set('views', path.join(__dirname, "../views"));
app.set('view engine', 'jsx');
app.engine('jsx', reactEngine.createEngine());
app.use("/testing", function (req, res) {
res.render("index.jsx");
});
module.exports = app;
And the index.jsx:
const React = require('react');
const ReactRouter = require('react-router');
const createHistory = require('history').createMemoryHistory;
const Router = ReactRouter.Router;
const routes = require('./routes');
const injectTapEventPlugin = require('react-tap-event-plugin');
const historyRoute = createHistory();
injectTapEventPlugin();
class Index extends React.Component {
render(){
return(
<Router routes={routes} history={historyRoute}/>
);
}
}
module.exports = Index;
Also the required routes file goes on like this:
const React = require('react');
const ReactRouter = require('react-router');
const Route = ReactRouter.Route;
const IndexRoute = ReactRouter.IndexRoute;
const App = require('./containers/App');
const FormPage = require('./containers/FormPage');
const Dashboard = require('./containers/DashboardPage');
const Routes = props => {
return (
<Route path="/" component={App}>
<IndexRoute component={Dashboard}/>
<Route path="dashboard" component={Dashboard}/>
<Route path="form" component={FormPage}/>
</Route>
);
};
module.exports = Routes;
Additional information:
- react version: 15.6.1
- react-router version: 4.2.0
- express version: 4.15.4
- node version: 6.11.3
- express-react-views: 0.10.2