Пересечение роутов react и nodejs

Рейтинг: 0Ответов: 1Опубликовано: 14.04.2023

Приложение на react и express. В реакте роуты реализованы через react-router-dom, в ноде через express router.

Express отдает статику: app.use(express.static('app')) - В папку app закидывается билд реакта

Проблема в том, что переходя по адресу http://localhost:8080/ я попадаю на главную страницу приложения, на которой есть ссылки на другие страницы через react-router-dom, допустим, я перехожу по одной из них и попадаю на http://localhost:8080/employee при перезагрузке страницы я получаю ошибку Cannot GET /employees - как будто я делаю запрос в свой апи, а не использую роутинг реакта, тоже самое, если я просто попытаюсь перейти на страницу по ссылке, при этом обычные роуты ноды работают. Получается так, что по роутам реакта я могу передвигаться только с главной страницы

Что можно сделать в таком случае? Может быть нужно как то разделить апи и фронт? Или я не так отдаю статику? Будут полезны ссылки на правильную реализацию отдачи статики в связке express - react, nginx пока не использую - хочу знать как это реализовать на express

Ответы

▲ 0
app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'view/home', 'index.html'))
})
app.get('/other-app*', (req, res) => {
        res.sendFile(path.join(__dirname, 'view/other-app', 'index.html'))
})

Если нужно к примеру запустить 2 React приложения на разных роутах