Express.js - Как обрабатывать 404 страницы при использовании параметров маршрута - PullRequest
0 голосов
/ 19 сентября 2019

Как обрабатывать 404 страницы, когда я также пытаюсь перехватить URL с динамическими параметрами ?Т.е. /:id

Приведенный ниже код никогда не достигает последнего правила для 404, и Express всегда пытается открыть файл html, даже если он не существует.

const express = require('express');
const app = express();

app.use(express.static(__dirname + '/dev'));

app.get('/', function(req, res) {
  res.sendFile(`${__dirname}/dev/index.html`);
});

app.get('/:id', function(req, res) {
  res.sendFile(`${__dirname}/dev/pages/${req.params.id}.html`);
});

app.get('*', function(req, res) {
  res.status(404).sendFile(`${__dirname}/dev/404.html`);
});

app.listen(3000, function() {
  console.log('Express server started http://localhost:3000');
});

1 Ответ

1 голос
/ 20 сентября 2019

Ваш код никогда не достигнет правила 404.Вам нужно обработать ошибку 404 из самого динамического маршрута.Поскольку вы определили динамический параметр после корневого пути, после этого путь будет идти по этому маршруту и ​​никогда не достигнет правила 404.

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