来自快速框架中的app.listen()的nodejs错误

时间:2014-04-17 18:51:40

标签: node.js express

我不知道为什么我会收到这个错误:

enter image description here

这是我的代码

/*
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);

它可能是框架本身的某种错误,但我不明白为什么,我昨晚使用它没有错误,现在我今天早上得到这个错误..

2 个答案:

答案 0 :(得分:3)

EADDRINUSE表示另一个进程已在同一端口上侦听。可能这是您的服务器的早期运行仍在运行/崩溃并仍在使用该端口。找到该进程,终止它并重试。这不是您的JavaScript代码中的错误。

此外,由于您绑定端口80并运行Windows,因此可能是另一个Web服务器(如IIS)正在运行并使用端口80。

答案 1 :(得分:0)

0到1024之间的端口通常保留供OS使用。虽然不是在这些限制之间使用端口的拇指规则,但是不使用此范围内的端口以避免使用端口#s的意外/偶然冲突始终是安全的。