【问题标题】:Why do I get 404 when using multiple sub-routers?为什么我在使用多个子路由器时会得到 404?
【发布时间】:2016-02-01 23:39:41
【问题描述】:

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

app.js

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

控制器/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.

控制器/empty.js

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

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

【问题讨论】:

    标签: javascript express routes


    【解决方案1】:

    问题在于module.exports = router = new Router(); 模式的使用。我的理解是前面的语句将router导出为一个全局变量,在代码的各个地方都用到了。将此语句更改为 var router = module.exports = new Router(); 就可以了。

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2021-06-26
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多