Node.js核心模块(下)

1、http模块

用于构建使用http协议的客户端应用或者服务器端应用

创建并发起请求消息,等待并解析响应消息————实现web客户端

接收并解析请求消息,构建并发送响应消息————实现web服务器端

常用对象:

http.ClientRequest

http.Server

http.ServerResponse

http.IncomingMessage

常用方法:

http:createServer()

http.get()

http.request()


    1.http.request
    http.request是一个HTTP客户端工具
    用于向web服务器发起一个http请求,并获取响应数据
    有两个主要方法:
        http.get()
        http.request()
该方法返回一个http.ClientRequest对象,用来描述请求信息,回调函数的参数是一个http.IncomingMessage,封装着响应信息。
    http.ClientRequest对象常用方法:
        write():向服务器追加请求主体数据
        end():提交请求消息主体结束
        setTimeout():设置请求消息超时时间
        abort():终止请求
    http.ClientRequest对象常用事件:
        response:接收到响应消息
        abort:请求终止事件
        error:请求发生错误
    注意:使用get()方法不需要手动调用end()方法,使用request()的时候,必须手动调用end()方法。

2、http.server

http.server是一个基于事件的http服务器

用于创建web服务器,接收客户端请求,返回响应消息。所有的请求都被封装到独立的事件当中,我们只需对它的事件编写响应的处理程序,就可用实现http服务器的所有功能。
    方法:http.createServer()
    用于创建web服务器应用,可以接收客户端请求,并返回响应消息。
    该方法的返回值是一个http.Server对象
    http.Server对象的常用方法:
        listen():启动服务器,监听指定的服务端口
        close():停止服务器的运行
        setTimeout():设置服务器的响应消息超时时间
    http.Server对象的常用事件:
        connection:出现客户端连接
        request:接收到请求消息
        close:服务器停止事件
        error:响应发生错误
    http.Server对象的request事件回调函数中有两个参数
        第一个参数,是一个http.IncomingMessage对象,封装着客户端提交的请求消息数据。
        第二个参数:是一个http.ServerResponse对象,用于构建向客户端输出的响应消息数据。

//创建一个简单的web服务器---没有给客户端响应
//引入http模块
var http=require("http");

//使用http模块创建web服务器
var server=http.createServer();

//为服务器的requestZ事件绑定处理函数
server.on("request",function (req,res) {
  console.log("web服务器接收到一个请求。。。");
  console.log(`请求方法:${req.method}`);
  console.log(`请求url:${req.url}`);
  console.log(`请求版本:${req.httpVersion}`);
  console.log(`请求头:`);
  console.log(req.headers);
});

//启动web服务器,监听指定端口
server.listen(8000,'127.0.0.1',(err)=>{
  if(err){
    console.log("web服务器启动失败,错误消息为:");
    console.log(err);
  }else{
    console.log("服务器启动成功,正在监听8000端口");
  }
});




 

/*创建web服务器,给客户端一个固定响应*/
//引入http模块
var http=require("http");

//创建web服务器
var server = http.createServer();

//为http.Server的request事件绑定处理函数
server.on("request",(req,res)=>{
  console.log("web服务器接收到一个请求。。。");
  res.statusCode=200;//设置响应状态码
  res.setHeader("Content-Type","text/html;charset=utf-8");//设置响应消息头部
  res.write("<html>");//向客户端输出的响应主体内容
  res.write("<head>欢迎访问我的页面</head>");
  res.write("</html>");
  res.end();//响应主体内容完毕,向客户端发送响应
});
//启动web服务器,监听指定端口
server.listen(8000,"127.0.0.1",(err)=>{
  if(err){
    console.log("服务器启动失败");
  }else{
    console.log("服务器启动成功,正在监听端口");
  }
})




2、MySQL模块(可以联系java中的类比学习)

    方法:
    createConnection()    //创建一个mysql服务器的连接
    该方法返回一个连接对象,该对象有以下常用方法:
        connect()    //连接数据库
        query()    //提交SQL语句给MySQL服务器执行
        end()    //断开与MySQL服务器的连接

 

3、express模块

 express是在connect模块基础上进行封装的

功能:可以方便的实现服务器的路由、发送和接收http请求,返回响应、发送和接收cookie以及实现模板引擎功能。

 app.method(path,[middleware,]function(req,res){})

中间件

var express=require("express");
//对express进行实例,作为http服务器
var app=express();
//启动express服务器,监听8002端口
app.listen(8002);
app.get("/",(req,res)=>{
  res.send("您访问的是根目录");
});
//使用正则匹配
app.get(/\/log/,(req,res)=>{
  res.send("您访问的是log目录");
})

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值