Oscar Reyes
Oscar Reyes

Reputation: 4342

nodejs error from app.listen() in express framework

i dont know why im getting this error:

enter image description here

this is my code

/*
Chat application for @node.js
express version.
*/

//Load modules.
var express = require('express'),
    socket = require('socket.io'),
    swig = require('swig'),
    fs = require('fs');

//Load config.
console.log('Loading configuration.');
var config = fs.readFileSync('config.json');
var config = JSON.parse(config);
var port = config.port;
var views = config.views;
console.log('Configuration loaded.');
console.log(config);

//Initiate express module in app.
var app = express();

// app.get('/', function(request, response)
// {
//  fs.readFile('./views/index.html', function(error, data)
//  {
//      if(error)
//      {
//          response.send('View cannot be rendered.');
//      }

//      response.type('html');
//      response.send(data);
//  });
// });

var test = "Hello";

app.engine('html', swig.renderFile);

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

swig.setDefaults(
{
    cache: false
});

app.get('/', function(request, response)
{
    response.render('index',
    {
        //Var to be named in the render : value;
        'test': test,
        'Title': 'Testing page',
    });
});

//logger.
app.use(function(request, response, next)
{
    console.log('%s %s', request.method, request.url);
    next();
});

//Set directory for static files (css, js, img)
app.use(express.static(__dirname + '/public'));

//Run the app.
app.listen(port);

it might be some kind of error with the framework itself, but i dont get the clue why, i was using it last night with no error, now im getting this error this morning..

Upvotes: 0

Views: 2528

Answers (2)

DevdattaK
DevdattaK

Reputation: 198

The ports from 0 to 1024 are typically reserved for OS to use. Though its not a thumb rule not to use ports between these limits, its always safe to not use ports in this range to avoid accidental/occassional collision of using port#s.

Upvotes: 0

Peter Lyons
Peter Lyons

Reputation: 145994

EADDRINUSE means another process is already listening on the same port. Probably this is an earlier run of your server that is still running/crashed and still using the port. Find that process, terminate it, and retry. This is not an error in your javascript code.

Also since you are binding port 80 and running windows, it could be that another web server such as IIS is running and using port 80.

Upvotes: 3

Related Questions