Как использовать React Helmet с рендерингом на стороне сервера, используя экспресс для SEO? - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь включить SEO для моего веб-приложения, разработанного на React-хуках. Для этого я исследовал множество сайтов и теперь использую React-Helmet с экспрессом, но постоянно получаю сообщение об ошибке:

TypeError: Cannot read property 'prototype' of undefined

(анонимная функция) node_modules / express / lib / response.js: 58 55 |* / 56 |57 |

58 |var res = Object.create (http.ServerResponse.prototype);59 |/ ** 60 |* Модуль экспорта. 61 |* @ public

Проверьте мой код для справки:

Index.js

ReactDOM.render(
    <Server />
   );

Server.js

import { Helmet } from "react-helmet";
const app = express();

const server = () => {
app.get('/*', (req, res) => {
const app = renderToString(<App />, document.getElementById('root'));
const helmet = Helmet.renderStatic();

const html = `
<!doctype html>
<html ${helmet.htmlAttributes.toString()}>
    <head>
        ${helmet.title.toString()}
        ${helmet.meta.toString()}
        ${helmet.link.toString()}
    </head>
    <body ${helmet.bodyAttributes.toString()}>
        <div id="app">
            ${app}
        </div>
    </body>
</html>
`;

res.send(html);
});

app.listen(3000);
}
export default server;

Iне знаю, что не так с кодом. Любая помощь приветствуется. Заранее спасибо!

...