gpt4 book ai didi

javascript - 为什么使用多个子路由器时会出现 404?

转载 作者:行者123 更新时间:2023-11-28 06:45:08 25 4
gpt4 key购买 nike

我一直在探索express.js 4.13+。看起来相当不错。但是,当使用多个子路由器时,我只能到达第一个子路由器声明的端点。剩余的路由不断抛出 404。请求似乎没有沿着路由堆栈传播。

app.js

...
app.use(require('./controllers'));
app.use(require('./middlewares/404'));
...

Controller /index.js

module.exports = router = new Router();

router.get('/', function(req, res) {
res.render('home');
});

router.use('/empty', require('./empty')); // works
router.use('/member', require('./user')); // throws 404 works only if above mount is removed.

Controller /empty.js

var Router = require('express').Router; 
module.exports = router = new Router();
router.get('/', function(req, res, next) {
res.send('empty');
});

导航到 //empty 按预期工作,但 /member 下的所有路由均失败并显示 404。感谢任何帮助。

最佳答案

问题在于使用 module.exports = router = new Router(); 模式。我的理解是,前面的语句将 router 导出为全局变量,在代码中的各个位置使用。将此语句更改为 var router = module.exports = new Router(); 就成功了。

关于javascript - 为什么使用多个子路由器时会出现 404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com