我尝试将所有以/api
结尾的路由重定向到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
时,没有任何反应,页面会继续加载。
感谢您的帮助!
答案 0 :(得分:5)
您没有正确地通过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;