Express升级后路由失效:外部路由文件加载异常
Express升级后外部路由文件404排查方案
检查路由文件导出是否正确
确保routes/users.js用CommonJS规范导出路由实例,别漏写module.exports:const express = require('express'); const router = express.Router(); router.post('/register', (req, res) => { // 你的业务逻辑 }); module.exports = router; // 关键:必须导出router如果项目启用了ES模块(package.json里配置了
"type": "module"),要改用export default router,同时导入时用import usersRouter from './routes/users.js'。确认app.js里的路由挂载逻辑
检查外部路由的挂载代码,路径前缀和文件路径都不能出错:const usersRouter = require('./routes/users'); app.use('/users', usersRouter); // 挂载前缀/users,对应请求路径/users/register注意别把文件路径拼写错误(比如把
users写成user),或者挂载时用了错误的前缀(比如写成/user)。锁定Express版本排查隐性变化
虽然官方没标注近12个月有破坏性更新,但*会自动安装最新版本,可能存在细节变更。可以在package.json里指定稳定版本,比如:"express": "^4.18.2"运行
npm install重新安装后再测试路由是否正常。检查路由文件内的路径定义
外部路由文件里的路径不要重复挂载前缀,比如users.js里写router.post('/register', ...)就够了,别写成/users/register——否则实际匹配路径会变成/users/users/register,自然返回404。调试请求路径
在app.js最前面加一个调试中间件,打印所有请求的方法和路径,确认请求是否正确到达路由环节:app.use((req, res, next) => { console.log(`${req.method} ${req.path}`); next(); });发送请求后查看控制台输出,确认
POST /users/register是否被正确捕获。
内容的提问来源于stack exchange,提问作者Sithys
相关产品推荐
相关产品推荐

