nodejs内置模块之http

nodejs内置模块指的是除默认提供的语法之外,提供的美容,无需下载,直接引入,引入只写名称即可

引入的代码

var http=require("http");

http可以充当两个角色,一个是服务器,一个是客户端
①当他充当服务器角色时
客户端向他发送请求,
http的createServer(创建服务方法),每次接收请求时,回调函数都会执行,将请求和响应的对象作为实参传入,createServer执行完毕会返回一个对象,调用对象下的listen方法设置监听端口号,每次更改代码都需要重新启动服务。
为了避免多次启动,全局下载nodemon包,实时重新启动服务,无需手动重启服务,简便操作。
npm install nodemon -g
输入nodemon http.js即可实现自动重启
后缀js要加

var http = require("http");
http.createServer(function(req,res){
                  res.writeHead(200,{"Content-type":"text/html;charset=utf-8"});//200表示成功的状态码 设置文本编码
                  res.write("hello");//使用res.write写的内容会响应并不会终止请求
                  res.end("响应并终止请求");//使用res.end响应并终止请求
}).listen(8080);//在网页中输入localhost:8080即可看到re.write和res.end写的内容

②作为客户端,是向其他服务端口请求数据

var http=require("http");
http.get("http://www.baidu.com",function(res){
            var str="";
                res.on("data",function(chunk){//需要监听数据,一点一点的拼才能拿到最终的数据
                          str+=chunk;
});
res.on("end",function(){
              console.log(str);
})
})

因为这样写过程过于繁杂,所以引入第三方插件库request,参考老师的node-request模块,下载引入,这个模块是对http请求的封装,用于http请求作为客户端,发送请求更方便。

var request = require("request");
request("http://www.baidu.com",function(error,res,body){
                    console.log(body);//body拿到的就是网页上的数据
})

结合爬虫的思想,将拿到的一堆找到想要的,放到自己的数据库中,借助cheerio包
下载引入

var request=require("request");

var cheerio=require("cheerio");

request("https://www.jianshu.com/u/bdce7da974c5",function(error,res,body){

    var $=cheerio.load(body);

    var arr=[];

    $(".content .title").each(function(){

        arr.push({
            title:$(this).text(),
            des:$(this).next().text()
        })

    });

    console.log(arr);

})

你可能感兴趣的:(nodejs内置模块之http)