Unable to Split Routes into Separate Files in Express 4.0

元气小坏坏 提交于 2020-01-14 03:04:48

问题


I'm trying to redirect all my routes ending with /api to a manager.js which will then route it to /me.

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");
    });

};

When I go to localhost:8080/api/me, nothing happens, the page keeps loading.

Thanks for any help!


回答1:


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());

but what you are effectively doing right now is this:

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

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;


来源:https://stackoverflow.com/questions/25396592/unable-to-split-routes-into-separate-files-in-express-4-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!