Unable to Split Routes into Separate Files in Express 4.0

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!

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;