内置模块的理解

常用的内置模块

http
跨域
创建服务器
爬虫 cheerio 解析标记并提供遍历 each

1.获取网页源代码
2,对源代码进行分析 获取数据

URL 统一资源定位符

https: // user :pass @ sub.host.com : 8080 /p/a/t/h ? query=string #hash
hostname port pathname search
protocol(协议) auth(验证) host(主机) query hsah
path
url.parse 格式转换为对象

const url=require('url');
let urlstring='http://www.baidu.com:8080/home/login/test?name=wy&ps=wanger#hash'
const myURL=url.parse(urlstring,false)     //false query是字符串格式    true  query  是对象格式
console.log(myURL)

url.format 对象格式转换为url格式

const url=require('url');
let obj={
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.baidu.com:8080',
port: '8080',
hostname: 'www.baidu.com',
hash: '#hash',
search: '?name=wy&ps=wanger',
query: { name: 'wy', ps: 'wanger' },
pathname: '/home/login/test',
path: '/home/login/test?name=wy&ps=wanger',
href: 'http://www.baidu.com:8080/home/login/test?name=wy&ps=wanger#hash'
}
let result=url.format(obj)
console.log(result)

querystring

querystring.escape 编码

const qs=require('querystring');   //主要用于·汉字特殊字符
let code='x=阿瑟&sda=222'
console.log(qs.escape(code));

querystring.unescape 解码

const qs=require('querystring');
let code='x%3D%E9%98%BF%E7%91%9F%26sda%3D222'
console.log(qs.unescape(code))

querystring.parse 将字符串转换为对象

const qs=require('querystring');
let query='us=wangyi&ps=123'    //参数二区分键值对     参数三区分键值
console.log(qs.parse(query)); <=====>console.log(qs.parse(query,"&","="));

querystring.stringify将对象转换为字符串

const qs=require('querystring');
let obj={
user:'admin',
pass:123456
}
console.log(qs.stringify(obj,'@',"!"))

path

console.log(_dirname) //获取当前文件所在目录的绝对路径

path.join 作用 :实现路径的拼接 将参数进行智能拼接主要来获取绝对路径

console.log(path.join(_dirname,'./files.js')) <======>console.log(path.join(_dirname,'./','files.js'))

path.basename 获取路径中的文件名

console.log(path.basename('/foo/bar/baz/asdf/quux.html'));   quux.html

path.dirname 获取路径中目录名

console.log(path.dirname(’/foo/bar/baz/asdf/quux.html’)); /foo/bar/baz/asdf/

path.extname 获取路径中文件拓展名

console.log(path.extname('/foo/bar/baz/asdf/quux.html'));     .html
path.isAbsolute()  判断路径   绝对路径为true    相对路径为false

events

const EventEmitter=require('events');
//继承加实例化对象
class MyEmitter extends EventEmitter{}
const myEmitter=new MyEmitter();
let callback=(food,food2)=>{
console.log('eat'+food+food2);
}
//添加对象监听
 //once执行一次
myEmitter.once('eat',callback)
// myEmitter.on('eat',callback)
//触发对象的事件
myEmitter.emit('eat','哈哈','嘻嘻');
myEmitter.emit('eat','ads','dew');

removeAllListeners移除所有
myEmitter.removeAllListeners();

removeListener 移除单个              移除的的监听函数 必须是绑定的函数
myEmitter.removeListener('eat',callback);

Stream 数据的传输方法

copy一个文件

方法一:

const fs=require('fs');
let read=fs.createReadStream('./event.js');    //创建一个可读流
let data='';
read.on('data',(chunk)=>{
data+=chunk;
console.log(chunk);
})
read.on('end',()=>{
fs.writeFileSync('./event2.js',data);
})

方法二:

//读写流配合
const fs=require('fs');
let read=fs.createReadStream('./event.js');//创建可读的流
let writestream=fs.createWriteStream('./event2.js');//创建可写的流
read.on('data',(chunk)=>{
writestream.write(chunk);
})

方法三:

//运用管道
const fs=require('fs');
let read=fs.createReadStream('./event.js');
let writestream=fs.createWriteStream('./event3.js');
read.pipe(writestream)

方法四:
运用readFile writeFile

zlib

对文件进行压缩

const zlib=require('zlib');
const gzip=zlib.createGzip();
const fs=require('fs');
const inp=fs.createReadStream('./1.png');//所要压缩的文件
const out=fs.WriteStream('./1.png.rar');//压缩的类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值