在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;