【发布时间】: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');
});
【问题讨论】:
-
也许你需要错误处理中间件:expressjs.com/en/guide/…
-
这似乎不是一个好的设计,我会在某个路径之后有一个带有动态 url 参数的路由,-app.get('/
/:id)。
标签: javascript node.js express routing