猿问

Express.js - 使用路由参数时如何处理 404 页面

当我还尝试使用动态参数捕获 url 时如何处理 404 页面?IE,/:id


下面的代码永远不会达到 404 的最后一条规则,html即使文件不存在,Express也会尝试打开 它们。


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');

});


森林海
浏览 319回答 1
1回答

湖上湖

您的代码永远不会达到 404 规则。您需要从动态路由本身内部处理 404 错误。由于您在根路径之后定义了动态参数,因此之后的路径将进入该路由并且永远不会达到 404 规则。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答