Express.js 是一个基于 Node.js 平台的极简、灵活的 web 应用框架。它提供了一系列强大的特性来帮助开发者创建各种 web 和移动设备应用。其中,路由器(Router)是 Express.js 中的一个核心组件,用于处理不同的 URL 请求并返回相应的响应。
Express.js 的路由器主要分为两种类型:
express.Router()
创建,可以挂载在应用或另一个路由器上,实现模块化路由。Express.js 路由器广泛应用于各种 web 应用场景,包括但不限于:
问题原因:
app.use('*', ...)
),则后续具体路由将不会被匹配。解决方案:
const express = require('express');
const app = express();
// 正确示例:先定义具体路由,再定义通配符路由
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
app.use('*', (req, res) => {
res.status(404).send('Not Found');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
// 错误示例:路径拼写错误
app.get('/helo', (req, res) => {
res.send('Hello World!');
});
// 正确示例:路径拼写正确
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
// 错误示例:错误处理中间件放在了前面
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
// 正确示例:错误处理中间件放在最后
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
通过以上步骤,你应该能够解决 Express.js 基本应用程序路由器不工作的问题。如果问题仍然存在,请检查控制台输出或日志文件,以获取更多详细的错误信息。
领取专属 10元无门槛券
手把手带您无忧上云