nodejs--http

Posted wumon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs--http相关的知识,希望对你有一定的参考价值。

http模块主要用到四个方法:

  1.Server类

    const http = require(‘http‘);

    let server = new Server();

    server.on(‘request‘,function(req,res){

      res.writeHead(200,{content-type:‘text/plain‘});

    } );

    server.listen(3000,function(){});

    http.Server 主要的事件有:

      ~ request,当客户端发送请求时触发,回调函数会有req和res参数。

      ~ connection,当TCP链接建立时事件触发,提供一个socket参数,是net.socket的实例。这里不作说明。

      ~ close,当服务器关闭时触发事件。

  2.createServer( function(req,res){} );

    此方法相当于Server添加了一个request事件。

 

  以上1、2的req是http.IncomingMessage的实例,其提供了三个事件:

      ~ data:当请求体数据到来时该事件被触发。该事件提供一个chunk作为参数,代表接受到的数据。

      ~ end:当请求体数据传输完毕时该事件被触发。

      ~close:用户当前请求结束时触发。

      同时,http.IncomingMessage提供的主要属性有:

      ~ method:http请求的方法。

      ~ headers:http请求头。

      ~ url:请求路径。

      ~ httpVersion:http协议版本。

    res是http.ServerResponse的实例,常用方法:

      ~ res.writeHead(statusCode,[headers])。

      ~ res.write(data[,encoding]);向请求发送内容。

      ~ res.end([data]);结束请求。

 

  Server()和createServer()返回的是一个基于事件的http服务器。

 

  3.request()

    request()必须end()。

    const http = require(‘http‘);

    http.request(option[,function(res){}]).end();

    ~ option 为JSON对象,主要有host、port(默认80)、method(默认get)、path(请求的相对路径、默认‘/‘)、headers等。

  4.get()

    http.get()方法是http.request()的get方法写法,同样需要end();

  request()和get()返回的是一个http.ClientRequest类实例。其主要的事件和方法有:

    ~ response,该事件当收到响应时触发。

    ~ request.write(chunk[,encoding,callback]),发送请求数据。

    ~ end(),请求完毕,应该始终指定该方法。

 

  

以上是关于nodejs--http的主要内容,如果未能解决你的问题,请参考以下文章