import escapeStringRegexp from 'escape-string-regexp'; import { Request, Response } from 'express'; import React from 'react'; import ReactDOMServer from 'react-dom/server'; import App from '../../App'; const renderMiddleware = () => (req: Request, res: Response) => { let html = req.html || ''; const htmlContent = ReactDOMServer.renderToString(); const htmlReplacements: StringMap = { HTML_CONTENT: htmlContent, }; Object.keys(htmlReplacements).forEach(key => { const value = htmlReplacements[key]; html = html.replace( new RegExp('__' + escapeStringRegexp(key) + '__', 'g'), value ); }); res.send(html); }; export default renderMiddleware;