我不知道为什么我会收到这个错误:
这是我的代码
/*
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);
它可能是框架本身的某种错误,但我不明白为什么,我昨晚使用它没有错误,现在我今天早上得到这个错误..
答案 0 :(得分:3)
EADDRINUSE
表示另一个进程已在同一端口上侦听。可能这是您的服务器的早期运行仍在运行/崩溃并仍在使用该端口。找到该进程,终止它并重试。这不是您的JavaScript代码中的错误。
此外,由于您绑定端口80并运行Windows,因此可能是另一个Web服务器(如IIS)正在运行并使用端口80。
答案 1 :(得分:0)
0到1024之间的端口通常保留供OS使用。虽然不是在这些限制之间使用端口的拇指规则,但是不使用此范围内的端口以避免使用端口#s的意外/偶然冲突始终是安全的。