#node.js #reactjs #heroku #routes #json-server
#node.js #реагирует на #героку #маршруты #json-сервер
Вопрос:
У меня проблема с сервером React, NodeJS и JSON. В принципе, я пытаюсь настроить сервер, который взаимодействует с базой данных (и это задача json-сервера), и эта часть работает правильно. Это тот самый server.js файл, в котором я установил это:
const jsonServer = require('json-server'); const app = jsonServer.create(); const router = jsonServer.router('./db.json'); const middlewares = jsonServer.defaults( { static: './build' }); const port = process.env.PORT || 8000; app.use(middlewares); app.use(jsonServer.rewriter({ '/api/*': '/$1' })) app.use(router) app.listen(port, () =gt; { console.log('Server is running') })
Проблема в следующем: когда я захожу в корень своего приложения (например: root = somesite.ext), если я не вошел в систему, оно перенаправляет меня на {root}/вход. Если я обновлю страницу входа в систему или зайду на нее напрямую, я получу ошибку 404. Вопрос в следующем: как мне правильно установить server.js для того, чтобы отслеживать все маршруты моего приложения и не возвращать 404 или другие ошибки, если они существуют?
На стороне реакции маршруты определяются следующим образом:
lt;Routergt; lt;Switchgt; lt;Route exact path="/login" element={lt;Login title="You are not logged in :(" log={this.log.bind(this)} logStatus={logStatus} /gt; } /gt; lt;Route exact path="/" element={lt;divgt;lt;Application log={this.log.bind(this)} logStatus={logStatus} user={this.state.currentUser}/gt;lt;/divgt;} /gt; lt;Route path="/verify/*" element={lt;VerifyEmail log={this.log.bind(this)} /gt;} /gt; lt;/Switchgt; lt;/Routergt;
Если это представляет какой-то интерес, я пытаюсь развернуть это приложение на Heroku.