【问题标题】:Express.js - How to handle 404 pages when using route parametersExpress.js - 使用路由参数时如何处理 404 页面
【发布时间】:2019-09-18 21:50:21
【问题描述】:

当我还尝试使用动态参数捕获网址时,如何处理 404 页面?即/: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');
});

【问题讨论】:

标签: javascript node.js express routing


【解决方案1】:

您的代码永远不会达到 404 规则。您需要从动态路由本身处理 404 错误。 由于您在根路径后定义了动态参数,因此之后的路径将进入该路由并且永远不会达到 404 规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2015-10-29
    • 2023-03-05
    相关资源
    最近更新 更多