user269964 user269964 - 1 year ago 127
Node.js Question

routing node.js and express

I'm having a problem routing in express 4. I was following the example, but it isn't loading. I'm just getting a spinning wheel.

How do you do routing in express version 4?


var express = require('express');

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

app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

var port = (process.env.PORT || process.env.VCAP_APP_PORT || 5000);

app.use('/birds', require('./controller/bird'));

http.createServer(function (req, res) {
//res.writeHead(200, {'Content-Type': 'text/plain'});
//res.end('Hello World!\n');

console.log('Server running at'+port);


var express = require('express');
var router = express.Router();

// middleware specific to this router
router.use(function timeLog(req, res, next) {
console.log('Time: ',;
// define the home page route
router.get('/', function(req, res) {
res.send('Birds home page');
// define the about route
router.get('/about', function(req, res) {
res.send('About birds');

module.exports = router;

Answer Source

You're not calling the app.listen() function. Instead of the http.createServer one, you should invoke the Express function.

Please, take a look at a basic example.

Relevant code:

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');

Edit: as slebetman wrote in the comment, the more general way for it is:

http.createServer(app).listen(port, function(){ 
    console.log('now listening on port ' + port);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download