思路:
1、首先创建一个服务器,
2、开启服务器侦听,创建端口号和IP地址
3、req请求消息,res响应消息
4、设置响应头,添加响应消息对象
5、如果接收到的消息是图标,那么就直接结束响应当前消息
6、侦听请求事件和end事件
getServer.js
var http=require("http");
var querystring=require("querystring");//这个模块可以将query格式字符串
// 创建服务,一旦客户端请求当前这个node服务时,就会执行listenerHandler函数
var server=http.createServer(listenerHandler);
// 侦听开启服务器,设定开启的服务器端口号和ip,已经开启后执行的函数
server.listen(4001,"10.9.72.229",listenerDoneHandler);//在这里将端口号和IP地址修改成自己的
// 并且传入参数req,res,req是请求(客户端发来的),res是响应(当前服务端发回给客户端的)
function listenerHandler(req,res){
res.writeHead(200,{//响应头。200代表返回成功,后面跟的是对象
"content-type":"text/html;charset=utf-8"//规定返回的格式
})
// 判断发来的地址中是否有图标文件,如果有,直接结束响应当前消息,并且跳出不继续执行
if(req.url.includes("/favicon.ico")){
res.end();//这个end必须要写,不写的话就会挂起,不再继续往下执行,返回一个空的消息,证明是已经结束了
return;
}
// ?a=1&b=2&c=3 {a:1,b:2,c:3}
console.log(req.url);//打印请求的地址
var o=querystring.parse(req.url.split("?")[1]);
res.write("<div>"+o.user+"欢迎光临我的网站</div>");
res.write("<ul>");
for(var i=0;i<10;i++){
res.write("<li>"+i+"</li>");
}
res.write("</ul>");
res.end();//这个函数表示结束并返回一个消息,如果为空,那么就是返回
//一个空消息,证明已经结束,然后继续向下执行,这个函数在这里
// 表示把write 的东西全部发送出去
// res.end(内容) 仅响应一个消息内容,并且结束
// res.write(内容1);
// res.write(内容2);
// res.write(内容3);
// ...
// res.end()将上面所有write的内容一起响应发送。并且结束
}
function listenerDoneHandler(){
console.log("开启服务了");
}
postServer
var http=require("http");//引入HTTP,在任何地方都可以引入,可以进行HTTP的通信服务,HTTPS是加密的,但是要钱
var querystring=require("querystring");
var server=http.createServer(function(req,res){//pos并不发送url,而是通过数据新发来发送的
var data="";
res.writeHead(200,{//响应头
"content-type":"text/html;charset=utf-8"
})
if(req.url.includes("/favicon.ico")){
res.end();
return;
}
req.on("data",function(_data){//侦听事件,当你发我消息,我来侦听的一个过程
data+=_data;//因为上面定义的data为空字符串,所以_data会隐式转换成字符串,在这里可以查看发送过来的消息是啥样的
});
req.on("end",function(){//侦听事件,接收完消息
var o=querystring.parse(data);
res.write("<div>"+o.user+"欢迎光临我的网站</div>");
res.write("<ul>");
for(var i=0;i<10;i++){
res.write("<li>"+i+"</li>");
}
res.write("</ul>");
res.end();//当接收完消息,立马返回一个end
})
});
server.listen(4002,"10.9.72.229",function(){//这里不能同时占用同一个端口,所以这里换一个端口
console.log("开启服务");
})