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
如果遇到了可以一试哦。