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);
})