【发布时间】:2025-04-08 17:05:02
【问题描述】:
我的路由器设置如下:
app.js
global.express = require('express');
var app = express();
app.use(require('./server/routes/index'));
index.js
var router = express.Router();
router.use('/', require('./home.js'));
router.use('/inviteParticipants', require('./invite.js'));
module.exports = router;
邀请.js
var router = express.Router();
router.use('/route1', require('./route1.js'));
router.use('/route2', require('./route2.js'));
module.exports = router;
route1.js
var router = express.Router();
router.post('/:key', function(req, res, next) {
// ..code
}
module.exports = router;
route2.js
var router = express.Router();
router.post('/:key', function(req, res, next) {
// ..code
}
module.exports = router;
home.js
router.get('/', function(req, res, next) {
// code
}
当同时向/inviteParticipants/route1 和inviteParticipants/route2 发出请求时,/route2 似乎捕获了这两个请求。
但是,如果我在invite.js 中注释掉router.use('/route2',...),/route1 会捕捉到它对应的路由,而原本用于路由route2 的路由只会返回404。
所以,route1 按预期工作,但是当route2 可用时,它似乎会捕获route1 请求。 route1 不使用 next() 呼叫,如果这很重要的话。我已经仔细检查了请求的路线,前往route1 的路线是正确的。
“跳过”route1 我在这里做错了什么?
【问题讨论】:
-
好吧,没有看到路由器的所有定义以及每个路由器是如何创建和连接到 Express 中的,我无法真正理解什么是什么。只是没有足够的代码让我玩。
-
@jfriend00 好的,我在其中添加了更多代码。这就是你要找的吗?
-
无法使用您发布的代码进行复制。
-
我同意。我看不出有任何方法可以仅使用您显示的代码来重现您报告的内容。
-
这是我的确切路由代码。还需要什么?