Node.js内置模块

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Node.js内置模块

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('成功');
})
相关文章
|
2月前
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
110 62
|
3月前
|
JavaScript 前端开发
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
如何使用Vue和Element UI配合Node.js及multiparty模块实现图片上传并反显的功能,包括前端的Element UI组件配置和后端的Node.js服务端代码实现。
50 1
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
|
2月前
|
缓存 JSON JavaScript
Node.js模块系统
10月更文挑战第4天
41 2
|
2月前
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
10月更文挑战第7天
32 0
|
2月前
|
JavaScript 网络协议
Node.js 工具模块
10月更文挑战第7天
21 0
|
4月前
|
JavaScript 数据可视化
JS如何优雅的实现模块自动滚动展示
【8月更文挑战第22天】JS如何优雅的实现模块自动滚动展示
42 1
JS如何优雅的实现模块自动滚动展示
|
2月前
|
JavaScript 前端开发 应用服务中间件
Node.js Web 模块
Node.js Web 模块
|
3月前
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
这篇文章介绍了在Nest.js构建应用时,如何通过事件/发布-订阅模式使应用程序更健壮、灵活、易于扩展,并简化服务间通信。文章主要围绕@nestjs/event-emitter模块展开,这是一个基于eventemitter2库的社区模块,提供了事件发布/订阅功能,使得实现事件驱动架构变得简单。文章还介绍了如何使用该模块,包括安装依赖、初始化模块、注册EventEmitterModule、使用装饰器简化监听等。最后总结,集成@nestjs/event-emitter模块可以提升应用程序的事件驱动能力,构建出更为松耦合、易扩展且高度灵活的系统架构,是构建现代、响应迅速且具有高度解耦特性的Nest.
|
3月前
|
缓存 JavaScript 前端开发
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
JavaScript模块化开发:ES6模块与CommonJs的对比与应用
34 2
|
4月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
300 1