在Express 4.0中无法将路由拆分为单独的文件

我试图将所有以/api结尾的路由redirect到manager.js ,然后将其路由到/me

所以,一个完全合格的/me应该看起来像/api/me 。 在Express 3.x中将路由拆分成单独的文件很容易,但在4.0中遇到了问题。

app.js

 app.use('/api',require('./routes/manager')); 

manager.js

 var express = require('express'); var manager = express.Router(); module.exports = function() { manager.use('/me',require('../routes/me')); }; 

me.js

 var express = require('express'); var me = express.Router(); module.exports = function() { me.route('/') .get(function(req,res){ res.send("Welcome to Me"); }); }; 

当我到localhost:8080/api/me ,没有任何反应,页面一直在加载。

谢谢你的帮助!

你不太适合通过Router对象。 请记住,这是你正在做的事情:

 app.use('/api', express.Router()); 

但是你现在有效地做的是这样的:

 app.use('/api', function(){ express.Router() }); 

所以你不用导出一个函数,你应该导出Router本身。

manager.js

 var express = require('express'); var manager = express.Router(); manager.use('/me',require('../routes/me')); module.exports = manager; 

me.js

 var express = require('express'); var me = express.Router(); me.route('/').get(function(req,res){ res.send("Welcome to Me"); }); module.exports = me;