2015-11-02 41 views
1

我一直在探索express.js 4.13+。看起來不錯。但是,當使用多個子路由器時,我只能訪問第一個聲明的端點。剩下的路線繼續拋出404.請求似乎不會沿着路由堆棧傳播。爲什麼在使用多個子路由器時會得到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。任何幫助表示讚賞。

回答

0

問題是使用module.exports = router = new Router();模式。我的理解是前面的語句將router作爲全局變量導出,用於代碼中的各個位置。改變這種說法到var router = module.exports = new Router();做了竅門。

相關問題