node本地服务启动报Error: listen EADDRINUSE

node本地服务启动时,有时会报错,不知大家有没有遇到过,下面写个来说一下这个现象,以及解决方法。

先来一个简单的node创建服务器:

var http = require ("http");

http.createServer(function (request, response){

//发送HTTP头部

//HTTP状态值:200 : OK

//内容类型:text/plain

response.writeHead(200, {'Content-Type':'text/plain'})

//发送响应数据 “hello world”

response.end('Hello World\n');

}).listen(8081);

process.on('uncaughtException', function(err) {

console.log(err);

});

console.log('Server running at http://192.168.1.20:8081/');

以上代码我们完成了一个可以工作的 HTTP 服务器。

使用node命令执行以上的代码:

node server.js

Server running at http://192.168.1.20:8081/   //出现这个打印结果说明服务已正常启动

但是有时会出现如下报错:

Server running at http://192.168.1.20:8081/

{ Error: listen EADDRINUSE :::8081

at Object.exports._errnoException (util.js:1050:11)

at exports._exceptionWithHostPort (util.js:1073:20)

at Server.setupListenHandle [as _listen2] (net.js:1259:14)

at listenInCluster (net.js:1307:12)

at Server.listen (net.js:1406:7)

at Object. (/Users/chenzhenyang/Desktop/server.js:13:4)

at Module._compile (module.js:571:32)

at Object.Module._extensions..js (module.js:580:10)

at Module.load (module.js:488:32)

at tryModuleLoad (module.js:447:12)

code: 'EADDRINUSE',

errno: 'EADDRINUSE',

syscall: 'listen',

address: '::',

port: 8081 }

该错误是说端口冲突,可以换个端口后再执行,也可看看哪些node进程在运行中,使用ps | grep node命令查看,有个方便的结束所有node进程的方式:

功能:杀死进程名称中包含node的所有进程

ps -ef | grep node | awk '{print $2}' | xargs kill -9

如果遇到了可以一试哦。

你可能感兴趣的:(node本地服务启动报Error: listen EADDRINUSE)