用node创建服务器getServer和postServer

本文介绍如何使用Node.js创建简易HTTP服务器,包括GET和POST请求处理流程。通过代码示例展示了如何解析请求、设置响应头及响应客户端请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

	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("开启服务");
})
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值