В приложении MERN, если у вас есть app.get ('/') на вашем сервере ина вашем клиенте, который будет запускаться первым или иметь приоритет? - PullRequest
0 голосов
/ 05 декабря 2018

Скажем, у вас есть клиент React с экспресс-бэкэндом nodejs.На сервере у вас настроен маршрут, так что app.get ('/') обслуживает Home.html.На стороне React у вас есть response-router-dom, настроенный как

<Route path='/' component= { NotHome } />

Какой файл будет предоставлен / показан пользователю, Home или NotHome?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Существует разница между маршрутизацией на стороне сервера и маршрутизацией на стороне клиента.

  1. Если вы делаете стандартный запрос HTTP для страницы (например, вы вводите URL в адресную строку браузера)), серверная маршрутизация вступит в силу (например, обслуживает вас Home.html)
  2. Но , если ваш Home.html, то ссылается на JS, содержащий <Route /> tag, на стороне клиента маршрутизация вступает в силу. response-router-dom отобразит компонент NotHome в этом случае.
0 голосов
/ 05 декабря 2018

Маршрут сервера будет иметь преимущество, в приложении реакции, использующем Express, ваш файл основного сервера должен иметь один маршрут, подобный следующему:

app.get('/*', (req, res) => {
  res.sendFile(path.join(__dirname, '/index.html'));
})

app.listen(8000, '0.0.0.0', (err) => {
  if (err) {
    console.log(err)
  }
  console.log('Listening on 8000')
})

app.get ('/ *') являетсяперехватывайте все, чтобы каждый запрос get, например, каждый адрес в адресной строке вашего браузера, служил индексом, который, в свою очередь, будет обслуживать ваш bundle.js и обрабатывать компоненты на основе ваших

Надеюсь, это поможет.

Lloyd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...