常用内置模块

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):监听事件,也可以使用addListener
  • emitter.off(eventName,listener):移除事件监听,也可以使用removeListener
  • emitter.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]):移除所有的监听器