Slide 28
Slide 28 text
SERVER.JS
const server = global.server = express();
server.get('*', async (req, res, next) => {
try {
const data = { title: '', description: '', css: [], body: '', entry: assets.main.js };
const context = {
insertCss: styles => data.css.push(styles._getCss()),
...
};
await Router.dispatch({ path: req.path, query: req.query, context }, (state, component) => {
data.body = ReactDOM.renderToString(component);
data.css = css.join('');
});
const html = ReactDOM.renderToStaticMarkup();
res.status(200).send(`\n${html}`);
} catch (err) {
next(err);
}
});
server.listen(port, () => {});