Node.js内置模块
Node.js内置模块
Lieme1. http模块
用来搭建本地服务器
const http = require('http'),
http.createServer创建一个服务。
2. fs文件系统模块
赋予node读取本地文件的能力
const fs = require('fs');
fs.writeFile(path, fileData, cb) // 写入文件
fs.readFile(path, cb) // 读取文件
3. path路径模块
用来处理路径相关
const path = require('path')
let str = '/c/dir/index.html'
console.log(path.dirname(str))
path.resolve() // 路径解析,用来拼合路径,返回一个绝对路径
4. ur模块
用来处理网址相关,或者用来获取地址路径或参数
const url = require('url')
let site = 'http://www.a.cn/a/b/index.html?a=1&b=2'
let {pathname, query} = url.parse(site, true) //解析网址 true就是将参数解析为对象
console.log(pathname, query)
// '/a/b/index.html' {a: '1', n: '2'}
5. querystring 查询字符串模块
主要用来将参数拼接字符串解析为对象
const queryString = require('querystring')
let str = 'a=1&b=2&c=3'
let obj = queryString.parse(str)
console.log(obj, obj.a) //{a:'1',b:'2',c:'3'}, '1'
let o = queryString.stringify(obj)
console.log(0) // 'a=1&b=2&c=3'
6. assert 断言
判断条件是正确,如果正确则继续执行,如果错误则抛出异常
const assert = require('assert')
// assert.deepEqual(变量,预期值,错误信息) 变量 == 预期值
// assert.deepStrictEqual(变量,预期值,错误信息) 变量 === 预期值
// 同样也是错误的时候抛出信息,正确的时候继续默默执行
const obj = {a: {b: 1}}
const obj1 = {a: {b: 1}}
assert.deepEqual(obj, obj1, '不等') // true
7. stream 流
以工作流的模式,读取文件,使得文件的读取跟水流一样。一边读取一边使用。合理分配内存,避免内存爆掉的风险
const fs = require('fs')
// 读取流:fs.createReadStream();
// 写入流:fs.createWriteStream();
let rs = fs.createReadStream(a.txt) // 读取的文件
let ws = fs.createWriteStream(a2.txt) // 写入的文件
rs.pipe(ws) // pipe将rs 和 ws 连接起来,使得读取流的数据传输到输出流
rs.on('error', err => {
console.log(err);
});
ws.on('finish', () => {
console.log('成功');
})
8. zlib压缩
用来将文件压缩
const fs = require('fs')
const zlib = require('zlib')
let rs = fs.createReadStream('a.jpg')
let gz = zlib.createGzip()
let ws = fs.createWriteStream('a.jpg.gz')
rs.pipe(gz).pipe(ws) // 原始文件 => 压缩 => 写入
rs.on('error', err => {
console.log(err);
});
ws.on('finish', () => {
console.log('成功');
})