Node学习文档

AI-摘要
DeepSeek
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
Node学习文档
耳朵StriveNode.js
模块化
CommonJS
CommonJS引入模块
1 | /* |
CommonJS导出模块
1 | /* |
CommonJS原理
1 | /* |
module.exports和exports
1 | /* |
require的细节
1 | /* |
ES Module
1 | /* |
1 | /* |
HTML中引入ES Module
1 |
|
1 | // 注意事项一:在浏览器中直接使用esmodule时,必须在文件后边加上后缀名.js |
ES Module集中导入
1 | /* |
包管理工具
package.json的键含义
1 | /* |
依赖的版本管理
1 | /* |
package-lock.json的含义
1 | /* |
npx的使用
1 | /* |
npm 发布自己的包
1 | /* |
软链接与硬链接
1 | /* |
pnpm的使用
1 | /* |
Node模块-path
1 | /* |
Node模块-fs
fs文件读取的api
1 | const path = require("node:path"); |
fs文件写入的api
1 | const fs = require("node:fs"); |
fs的其他操作
1 | const fs = require("node:fs/promises"); |
1 | const fs = require("node:fs"); |
Node模块-events
events模块的基本使用
1 | // events模块中的事件总线 |
events模块的其他方法
1 | const EventEmitter = require("node:events"); |
Node中类-Stream
Buffer和字符串的转换
1 | // 1.创建Buffer |
Buffer的其他使用
1 | const path = require("node:path"); |
Node中流-Stream
认识可读流
- 什么是Stream呢?
- 我们的第一反应应该是流水,源源不断的流动;
- 程序中的流也是类似的含义,我们可以想象当我们从一个文件中读取数据时,文件的二进制(字节)数据会源源不断的被读取到我们程序中;
- 而这个一连串的字节,就是我们程序中的流;
- 所以,我们可以这样理解流:
- 是连续字节的一种表现形式和抽象概念;
- 流应该是可读的,也是可写的;
- 我们可以直接通过readFile或者writeFile方式读写文件,为什么还需要流呢?
- 直接读写文件的方式,虽然简单,但是无法控制一些细节的操作;
- 比如从什么位置开始读,读到什么位置、一次性读取多少个字节;
- 读到某个位置后,暂停读取,某个时刻恢复继续读取等等;
- 或者这个文件非常大,比如一个视频文件,一次性全部读取并不合适;
可读流的基本使用
1 | const path = require("node:path"); |
可写流的基本使用
1 | const fs = require("node:fs"); |
文件的拷贝流操作
1 | const fs = require("node:fs"); |
Node服务器-http
http基本介绍
1 | /* |
http服务器的基本使用
- server通过listen方法来开启服务器,并且在某一个主机和端口上监听网络请求
- 也就是当我们通过
ip:port的方式发送到我们监听的Web服务器上时 - 我们就可以对其进行相关的处理
- 也就是当我们通过
- listen函数有三个参数:
- 端口port:可以不传,系统会默认分配端口,可惜写入到环境变量中
- 主机host:通常可以传入localhost、ip地址127.0.0.1、或者ip地址0.0.0.0,默认是0.0.0.0
- localhost: 本质上是一个域名,通常情况下会被解析成127.0.0.1
- 127.0.0.1:回环地址(Loop Back Address),表达的意思其实是我们主机自己发出去的包,直接被自己接收
- 正常的数据库包 应用层 - 传输层 - 网络层 - 数据链路层 - 物理层
- 而回环地址,是在网络层直接就被获取到了,是不会经过数据链路层和物理层的
- 比如我们监听 127.0.0.1时,在同一个网段下的主机中,通过ip地址是不能访问的
- 0.0.0.0:
- 监听IPV4上所有的地址,在根据端口找到不同的应用程序
- 比如我们监听 0.0.0.0 时,在同一个网段下的主机中,通过ip地址时可以访问的
- 回调函数:服务器启动成功时回调函数
1 | const http = require("node:http"); |
1 | const http = require("node:http"); |
http服务器区分不同url和method
1 | const http = require("node:http"); |
request参数解析-query参数
1 | const http = require("node:http"); |
request参数解析-body参数
1 | const http = require("node:http"); |
request参数解析-header参数
1 | const http = require("node:http"); |
response响应对象-响应方式
1 | const http = require("node:http"); |
response响应对象-响应状态码
1 | const http = require("node:http"); |
response响应对象-响应header
1 | const http = require("node:http"); |
在node中发送请求-http
1 | const http = require("node:http"); |
在node中发送请求-axios
1 | const axios = require("axios"); |
评论
匿名评论隐私政策











