node 模块
url 核心模块
const url = require("url");
let path = "https://www.baidu.com/s?
wd=node&rsv_spt=1&rsv_iqid=0xbeece5ef00056753&
issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&
rsv_enter=1&
rsv_sug3=4&rsv_sug1=4&rsv_sug7=100&rsv_sug2=0&
inputT=760&rsv_sug4=760&rsv_sug=1";
方法:
url.parse():将一个url解析成一个urlObject
参数1:url地址
参数2:布尔值 默认是false 如果设置成true则将query解析成对象
let urlObject = url.parse(path,true);
console.log(urlObject)
url.format():将一个urlObject解析成一个url字符串
参数1:urlObject
console.log(url.format(urlObject))
url.resolve() 将一个地址转换成一个相对地址或者绝对地址
console.log(url.resolve("/a/b/c","d")); // /a/b/d
console.log(url.resolve("/a/b/c","/d"));// /d
post相对于get来说是安全的,因为协议是https协议,post所传送的客户的信息,在Network里的fromdate里。
querystring 核心模块
//导入模块
const qs = require("querystring");
方法:
querystring.parse():将字符串转成对象
参数1:字符串
参数2:分隔符号
参数3:赋值符号
let str = "name+张三?age+18?username+李四?password+123";
console.log(qs.parse(str,"?","+"))
结果:
D:\GOGOGO\Three\day-02-node\Class Code>node 003querystring
[Object: null prototype] { name: '张三', age: '18',
username: '李四', password:'123' }
如果不加参数二和参数三的话,结果为:
[Object: null prototype] { 'name 张三?age 18?username 李四?password 123': '' }
querystring.stringfiy():将对象转换成字符串
参数1:对象
参数2:分隔符号
参数3:赋值符号
let obj = {name:"张三",age:19,sex:"女"};
console.log(qs.stringify(obj,"$","@"));
//结果为:
name@%E5%BC%A0%E4%B8%89$age@19$sex@%E5%A5%B3//加密过后的字符串。需要反转义。
//转义后:
name@张三$age@19$sex@女//为字符串。
querystring.escape():转义
就是将字符串加密。
querystring.unescape(); 反转义
解密。
fs 核心模块
//导入fs模块:
const fs = require("fs");
方法:
fs.stat() : 检查文件的类型 返回布尔值
参数1:文件的路径
参数2:回调
fs.stat("./002url.js",(err,stats)=>{
console.log(stats.isFile());//检测文件是否是一个文件
console.log(stats.isDirectory());//检测文件是否是一个文件夹
})
fs.mkdir() :创建文件夹
参数1:路径
参数2:回调
fs.mkdir("./fsDemo",(err)=>{})
fs.writeFile() : 在文件里面书写的内容
参数1:路径
参数2:需要书写的内容
参数3: 回调
在fs.writeFile("./fsDemo/index.txt","abc",(err)=>{})
结果:
在文件中书写了abc
fs.appendFile() : 在文件里面追加的内容
参数1:路径
参数2:需要追加的内容
参数3:失败的回调
fs.appendFile("./fsDemo/index.txt","123",(err)=>{})
结果:
文件中的内容是:abc 123
fs.readFile() : 读取文件里面的内容
参数1:路径
参数2:回调 2个参数 err data 文件的类型是buffter buffter+""就为正常文件了。
fs.readFile("./fsDemo/index.txt",(err,data)=>{
if(!err){ //如果成功的话,输出data。
console.log(data+"");
}
})
fs.rename() : 重命名文件
参数1:源文件路径
参数2:修改后的文件路径
参数3:回调
fs.rename("./fsDemo/index.txt","./fsDemo/data.txt",(err)=>{})
fs.readdir(): 列举文件的目录
参数1:文件路径
参数2:回调 err list
fs.readdir("./fsDemo",(err,list)=>{
console.log(list);
})
http 核心模块
creatServer : 创建服务器
const cheerio = require("cheerio");
cheerio这个模块可以让我用jquery的语法来操作字符串,可以做一个小爬虫的作用。
将某一网页的某一部分,写入json。
http.get("http://www.mobiletrain.org/?pinzhuanbdtg=biaoti",(res)=>{
//如果请求的状态是200
if(res.statusCode == 200){
let str = "";
//通过data这个方法去接受 接受的时候一块一块接受的
res.on("data",(data)=>{ //固定的
str+=data;
})
//断定接受完毕
res.on("end",()=>{
let $ = cheerio.load(str);
let arr = $(".banner_up_left").children();
fs.readFile("./fsDemo/index.json",(err,data)=>{
if(data){
let dataJSon = JSON.parse(data+"").data;
for(var i=0;i<arr.length;i++){
dataJSon.push(arr.eq(i).children().eq(0).text());
}
let newArr = [];
for(var i in dataJSon){
let obj = {};
obj.name = dataJSon[i];
newArr.push(obj);
}
let jsonString = JSON.stringify({data:newArr})
fs.writeFile("./fsDemo/index.json",jsonString,(err)=>{})
}
})
})
}
})
get() : 获取
参数一:配置项
参数二:回调函数(只有一个值:res)
cnpm install supervisor -g 服务器发生变化,会自动的帮你重启服务器。