前言

大家好,我是Lesedi,明天带来的是NodeJS中非常重要的模块--->http模块,一起来看看吧

引入

NodeJS的初衷就是心愿可能齐全由JavaScript来实现服务端开发。而NodeJS中的HTTP模块就是NodeJS内置的用来创立服务器的模块,上面咱们来看看怎么应用HTTP模块吧

网络模块有两种应用形式

  • 作为服务端应用,创立一个HTTP服务器,监听HTTP客户端申请并返回响应
  • 作为客户端应用,发动一个HTTP客户端申请,获取服务端响应

    作为服务端---创立一个简略服务器

导入网络模块

 const http = require('http')

示例

 //导入网络模块 const http = require('http') //创立了一个HTTP服务器来接收数据并监听3000端口 http.createServer(function (req, res) {     //设置响应胜利状态码200和内容类型     res.writeHead(200, {'Content-Type': 'text/plain'})     res.end('Hello World') }).listen(3000)

此时,关上浏览器输出localhost:3000若看到Hello World,则代表一个简略的服务器就创立胜利啦~

http.createServer常见是创立服务器的罕用API,前面的回调函数寄存想要进行的操作。它接管两个参数req即是request,客户端申请对象res即是response,服务器响应的对象.

其中req是http.IncomingMessage的实例 res是http.ServerRespons的实例

另一种写法

 //导入http模块 const http = require("http"); //获取http.Server对象 const server = new http.Server();  //创立服务器,并监听3000端口 server.on("request",function(req,res) {     res.writeHead(200,{"content-type":"text/plain"});     res.write("Hello World");     res.end(); }).listen(3000);

以上代码是通过间接创立一个http.Server对象,而后为其增加request事件监听,其实也就说createServer办法其实实质上也是为http.Server对象增加了一个request事件监听。所以两种办法是等价的,怎么应用看集体习惯。

作为客户端---发动HTTP申请

HTTP -规范库

NodeJS内置的http模块提供了http.requesthttp.get两个函数,能够实现由客户端向HTTP服务器发动网络申请

http.request

让咱们来对百度首页进行网络申请,看看有什么成果吧

//导入模块const http = require('http')const options = {  hostname: 'www.baidu.com', //地址  port: 80, //端口号  method: 'GET' //申请办法};const req=http.request(options,function(res){    res.setEncoding("utf-8"); //中文编码    res.on("data",function(data){        console.log(data) //获取的网页数据    });    console.log(res.statusCode); //打印状态码});req.on("error",function(err){    console.log(err.message); //报错信息});req.end();  //完结响应

在控制台执行该文件,即可打印出百度首页的HTML代码与响应胜利的200状态码。

http.get

因为get申请办法很常见,所以http模块提供了便捷的API,所以http.get就相当于是http.requset的简化版,值得注意的是http.get不须要手动调用req.end()

http.get('http://www.baidu.com/', function (res) {    res.setEncoding("utf-8")    res.on("data",function(data){        console.log(data) //获取的网页数据    });});

执行该文件,输入与http.request是统一的

小结

好啦,明天的分享就到这里啦,咱们下次再见!