nodejs学习
Events模块
- Node.js 中所有能发出事件的对象都是events.EventEmitter的实例,对象发出事件后,需要有响应函数进行响应处理。
- EventEmitter类的对象具有一系列方法可以进行事件相关操作,他们是:
- addListener(event,listener) / on(event,listener): 为对象的事件event添加监听器listener.
- once(evnet,listener): 为对象的事件event添加只响应一次的监听器listener.
- removeListener(event,listener): 移除一个监听器listener.
- removeAllListeners([listeners]): 移除与一个对象绑定的所有listener.
- setMaxListeners(n): 设置与一个对象绑定的监听器最多有n个。
- emit(event, [arg1], [arg2], [...]): 触发事件event.
- listenerCount(): 查看与对象绑定的监听器的个数。
fs模块
对系统文件及目录进行读写操作
readFile读取文件
使用fs.readFile(filename, [options], callback)
方法读取文件。
readFile接收三个参数,filename是文件名;[options]是可选的参数,为一个对象,用于指定文件编码(encoding)及操作方式(flag);callback是回调函数。
fs.readFileSync(filename, [options])
是readFile的同步方法。
writeFile写入文件
使用fs.writeFile(filename, data, [options], callback)
写入内容到文件。
writeFile接收四个参数,filename是文件名称;data是要写入文件的数据;[options]是一个对象为可选参数,包含编码格式(encoding),模式(mode)以及操作方式(flag);callback是回调函数。
使用fs.read和fs.write读写文件
使用fs.read
和fs.write
读写文件需要使用fs.open
打开文件和fs.close
关闭文件。
先介绍fs.open(path, flags, [mode], callback)
方法,此方法用于打开文件,以便fs.read()读取。path是文件路径,flags是打开文件的方式,[mode]是文件的权限(可选参数,默认值是0666),callback是回调函数。
fs.read()
先介绍fs.open(path, flags, [mode], callback)
方法,此方法用于打开文件,以便fs.read()读取。path是文件路径,flags是打开文件的方式,[mode]是文件的权限(可选参数,默认值是0666),callback是回调函数。
flags
的值:
r
:读取文件,文件不存在时报错;r+
:读取并写入文件,文件不存在时报错;rs
:以同步方式读取文件,文件不存在时报错;rs+
:以同步方式读取并写入文件,文件不存在时报错;w
:写入文件,文件不存在则创建,存在则清空;wx
:和w
一样,但是文件存在时会报错;w+
:读取并写入文件,文件不存在则创建,存在则清空;wx+
:和w+
一样,但是文件存在时会报错;a
:以追加方式写入文件,文件不存在则创建;ax
:和a
一样,但是文件存在时会报错;a+
:读取并追加写入文件,文件不存在则创建;ax+
:和a+
一样,但是文件存在时会报错。
fs.close(fd, [callback])
用于关闭文件,fd是所打开文件的文件描述符。
fs.read(fd, buffer, offset, length, position, callback)
方法接收6个参数。
fd
是文件描述符,必须接收fs.open()
方法中的回调函数返回的第二个参数;buffer
是存放读取到的数据的Buffer对象;offset
指定向buffer中存放数据的起始位置;length
指定读取文件中数据的字节数;position
指定在文件中读取文件内容的起始位置;callback
是回调函数,回调函数的参数:err
用于抛出异常;bytesRead
是从文件中读取内容的实际字节数;buffer
是被读取的缓存区对象。
ps:参考自实验楼
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端