Module.Exports not working for Express

Viewed 1732

I'm trying to organize routes in express. But I'm having trouble getting a simple setup to work. I have two files, api.js, which has the routing info, and index.js, which runs the server.

However, when I try this, I get no response on localhost:3000.

api.js

var express = require('express');

module.exports = function() {
  var router = express.Router();
  router.get('/', function(req, res) {
    res.send('im the home page!');  
  });
  return router;  
}

index.js

var express = require('express');
var app = express();

var router = require('./api');

app.use('/',router);
app.listen(3000);
console.log('Listening on port 3000!');

However, when I change api.js to this, it works:

api.js

var express = require('express');

var router = express.Router();
router.get('/', function(req, res) {
  res.send('im the home page!');  
});

module.exports = router;

I don't understand why the bottom api.js works when the top one doesn't. Shouldn't module.exports return the same express Router in both cases?

1 Answers
Related