экспресс-маршрут не падает на '/ _api /', а вместо этого на '/ *'? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть этот код для производства, и у меня есть маршрут с '/_api/...'

if (process.env.NODE_ENV === 'production') {
  this.app.set('trust proxy', 1); // trust first proxy <--- production
  sessionConfig.cookie.secure = true; // serve secure cookies
  //Serve any static files

  this.app.use(
    express.static(path.join(__dirname, '../../frontend/build'))
  );
  // Handle React routing, return all requests to React app
  this.app.get('/*', (req, res) => {
    res.sendFile(
      path.join(__dirname, '../../frontend/build', 'index.html')
    );
  });
}

, но когда я пытаюсь перейти, например:' /_api/tests.js ', яя получаю ответ index.html, как мне сделать так, чтобы он попадал под маршруты с подчеркиванием '/_api/tests.js', а не на '/ *'?

1 Ответ

0 голосов
/ 03 июля 2019

Экспресс сопоставляет маршруты в зависимости от их порядка в вашем коде.Если маршрутный символ находится перед любыми другими маршрутами, а next () не вызывается условно, любые последующие маршруты не будут сопоставлены.Другими словами, вам нужно поместить / _api / обработку маршрута перед / * маршрутом.

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