写的程序如下所示:
var http= require('http'); var url=require('url'); var fs=require('fs'); var server=http.createServer(); var HtmlDir=__dirname + '/html/'; server.on('request', function(req, res){ var urlStr=url.parse(req.url); switch(urlStr.pathname){ case '/': sendData( HtmlDir + 'index.html', req, res); break; case '/user': sendData( HtmlDir + 'user.html', req, res); break; default: break; } }); function sendData(file, req, res){ fs.readFile( file, function( err, data){ if(err){ res.writeHead(404, { 'content-type': 'text/html;charset=utf-8' }); res.end('<h1>This is the main page</h1>'); } else { res.writeHead(200, { 'content-type': 'text/html;charset=utf-8' }); res.end(data); } }); }; server.listen(8080, 'localhost');
run这个程序的时候 报出的错误如下:
events.js:137
throw er; // Unhandled 'error' event
(不好意思 解决报错之前没有把报错的具体信息和内容给写完整。)
出现这个报错信息原因是server.listen中的'8080'端口被别的程序和进程给占用了。解决方法如下:
1.进入cmd命令窗口,写netstat -ano|findstr "8080"
cmd窗口给我的信息为:
上述红框框内部的尾部有一个26120为端口8080对应的PID值 '26120'.
2.kill这个pid值taskkill -PID 26120 -F
cmd窗口给我的信息为:
这个是通过CMD窗口结束nodejs的方法。
最后自己的程序能够跑起来了 不在报错了。