1. 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('成功'); })