常用内置模块
path
获取路径信息
path.dirname():获取文件的父文件夹path.basename():获取文件名;path.extname():获取文件扩展名__dirname:获取父文件夹路径
路径拼接
path.join()path.resolve()- resolve函数会判断我们拼接的路径前面是否有/或../或./
- 如果有表示是一个绝对路径,会返回对应的拼接路径
- 如果没有,那么会和当前执行文件所在的文件夹进行路径的拼接
fs
大多有三种操作方式
- 同步操作
- 异步回调函数操作
- 异步Promise操作
读取文件
fs.statSync(路径)fs.stat(路径,回调函数)fs.promise.stat(路径).then(state=>console.log(state))
文件描述符
Node.js抽象出操作系统之间的特定差异,并为所有打开的文件分配一个数字型的文件描述符
- fs.open()方法用于分配新的文件描述符,一旦被分配,则文件描述符可用于从文件读取数据、向文件写入数据、或请求关于文件的信息
fs.open(路径,"r",(err,fd)=>console.log(fd))fd为文件描述符
文件读写
fs.readFile(path,[,options], callback):读取文件的内容fs.writeFile(file, data[,options], callback):在文件中写入内容
options参数
- flag:写入方式
w打开文件写入,默认值w+打开文件进行读写,如果不存在则创建文件r+打开文件进行读写,如果不存在那么抛出异常r打开文件读取,读取时的默认值a打开要写入的文件,将流放在文件末尾。如果不存在则创建文件a+打开文件以进行读写,将流放在文件末尾。如果不存在则创建文件
- encoding:字符编码
- 不填写encoding,默认返回的结果是Buffer
utf-8能显示中文
文件夹操作
fs.exists()判断文件夹是否存在,fs.isDirectory()判断是否是文件夹fs.mkdir()或者fs.mkdirSync()创建一个新文件夹fs.readdir(文件夹路径,(err,files)=>{})fs.rename(旧文件,新文件,(err)=>{})
events
发出事件和监听事件都是通过
EventEmitter类来完成的,它们都属于events对象。constEventEmitter=require('events'),constemitter=newEventEmitter()
emitter.on(eventName,listener):监听事件,也可以使用addListeneremitter.off(eventName,listener):移除事件监听,也可以使用removeListeneremitter.emit(eventName[,...args]):发出事件,可以携带一些参数emitter.eventNames():返回当前EventEmitter对象注册的事件字符串数组emitter.getMaxListeners():返回当前EventEmitter对象的最大监听器数量emitter.listenerCount(事件名称):返回当前EventEmitter对象某一个事件名称,监听器的个数emitter.listeners(事件名称):返回当前EventEmitter对象某个事件监听器上所有的监听器数组emitter.once(eventName,listener):事件监听一次emitter.prependListener():将监听事件添加到最前面emitter.prependOnceListener():将监听事件添加到最前面,但是只监听一次emitter.removeAllListeners([eventName]):移除所有的监听器