Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. app.use(express.static(path.join(__dirname, '/src/static')));
  2. app.set('views', path.join(__dirname, '/src/views'));
  3. app.set('view engine', 'ejs');
  4.  
  5. app.get('*', function(req, res) {
  6. let context={};
  7. const html = renderToString(
  8. <StaticRouter location={req.url} context={context}>
  9. <App />
  10. </StaticRouter>
  11. );
  12. res.render('index.ejs', {react: html});
  13. });
  14.  
  15. app.listen(port, function () {
  16. console.log('+++ Application listening on port: ' + port);
  17. });
  18.  
  19. <!DOCTYPE html>
  20. <html>
  21. <head>
  22. <title>React Isomorphic Server Side Rendering Example</title>
  23. </head>
  24. <body>
  25. <h1 id="main-title">Isomorphic Server Side Rendering with React</h1>
  26.  
  27. <div id="main">
  28. </div>
  29.  
  30. <!-- comment out main.js to see server side only rendering -->
  31. <script type='text/javascript' src='/bundle.js' />
  32. </body>
  33. </html>
  34.  
  35. export default class App extends React.Component {
  36. constructor(props) {
  37. super(props);
  38. }
  39.  
  40. render() {
  41. return (
  42. <div>
  43. <header>
  44. <h1> A demo site. </h1>
  45. </header>
  46. <nav>
  47. <NavLink exact to="/" > home </NavLink>
  48. <NavLink to="/sold" > sold </NavLink>
  49. <NavLink to="/about" > about</NavLink>
  50. </nav>
  51. <main>
  52. <Route exact path="/" component={ Home }/>
  53. <Route path="/sold" component={ Sold }/>
  54. <Route path="/about" component={ About }/>
  55. </main>
  56. </div>
  57. );
  58. }
  59. }
  60.  
  61. import ReactDOM from 'react-dom';
  62. import {BrowserRouter as Router} from 'react-router-dom';
  63.  
  64. import App from './components/App.jsx';
  65. //Components
  66.  
  67. ReactDOM.render((<App />),
  68. document.getElementById('main')
  69. );
  70.  
  71. var path = require('path');
  72.  
  73. module.exports = {
  74. entry: './src/index.js',
  75.  
  76. output: {
  77. path: path.join(__dirname, '/src/static/'),
  78. filename: 'bundle.js'
  79. },
  80.  
  81. module: {
  82. loaders: [
  83. { test: /.js$/, loader: 'babel-loader', exclude: /node_modules/ },
  84. { test: /.jsx$/, loader: 'babel-loader', exclude: /node_modules/ },
  85. // { test: /.(jpe?g|png|gif|svg)$/i, loader: 'file-loader'},
  86. ]
  87. },
  88.  
  89. devServer: {
  90. port: 7777,
  91. host: 'localhost'
  92. },
  93. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement