const path = require('path'); const fs = require('fs'); const express = require('express'); const React = require('react'); const ReactDOMServer = require('react-dom/server'); const PORT = process.env.PORT || 3006; const app = express(); app.get('/', (req, res) => { // Render React component tree to a string in the server let props = {}; let userProvidedData = '>'; props[userProvidedData] = "dummy"; let element = React.createElement("div", {...props}); // non-JSX syntax let app = ReactDOMServer.renderToString(element); // Respond a client with this data const indexFile = path.resolve('./public/index.html'); fs.readFile(indexFile, 'utf8', (err, data) => { if (err) { console.error('Something went wrong:', err); return res.status(500).send('Something went wrong'); } return res.send( data.replace('
', `
${app}
`) ); }); }); app.use(express.static('./public')); app.listen(PORT, () => { console.log(`Server is listening on port ${PORT}`); });