无法在Express 4.0中将路由拆分为单独的文件 [英] Unable to Split Routes into Separate Files in Express 4.0
问题描述
我正在尝试将以 / api
结尾的所有路线重定向到 manager.js
将它路由到 / me
。
I'm trying to redirect all my routes ending with /api
to a manager.js
which will then route it to /me
.
因此,对 / me <的完全限定请求/ code>应该看起来像
/ api / me
。在Express 3.x中,将路由分割成单独的文件很容易,但我在4.0中遇到了麻烦。
So, a fully qualified request to /me
should look like /api/me
. Splitting routes up into separate files was easy in Express 3.x, but I'm having trouble in 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
,没有任何反应,页面不断加载。
When I go to localhost:8080/api/me
, nothing happens, the page keeps loading.
感谢您的帮助!
推荐答案
您没有正确地通过路由器
对象。请记住,这就是你要做的事情:
You are not quite properly passing through the Router
objects. Keep in mind that this is what you are trying to do:
app.use('/api', express.Router());
但你现在实际做的是:
app.use('/api', function(){
express.Router()
});
因此,您应该导出路由器<而不是导出函数/ code>本身。
So you instead of exporting a function, you should be exporting the Router
itself.
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;
这篇关于无法在Express 4.0中将路由拆分为单独的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!