node核心模块

99 阅读2分钟

global

  • node中全局对象为global,作用类似于window
  • ES标准下,全局对象的标准名应该为globalThis

process

  • process模块用来表示和控制当前的node进程。
  • 通过该对象可以获取进程的信息,或者对进程做各种操作
  • process是一个全局变量,可以直接使用
process.exit() 结束当前进程,即终止node
process.nextTick(()=>{
    console.log(3)
}) 
// 将函数插入到tick队列中,tick队列中的代码,会在下一次事件循环之前执行

调用栈
tick队列
微任务队列
宏任务队列

Path

  • 表示路径
  • 通过path可以用来获取各种路径
  • 要使用path,需要先对其进行引入
  • 注意:通过不同方式执行代码时,它的工作目录是有可能发生变化的
    • 原因:工作目录不同,它产生的绝对路径也不同
    • 一般会将一个绝对路径作为第一个参数
const path = require('node:path')
console.log(path)

//path.resolve([...paths]) -用来生成一个绝对路径

//如果直接调用resolve,则返回当前的工作目录
const result = path.resolve()
//const result = path.resolve('./hello.js') 这种方式不用
//如果将一个相对路径作为参数,则resolve会自动将其转换为绝对路径

const result = path.resolve("绝对路径","相对路径")

//最终形态:最好用这种方式来生成路径
const result = path.resolve(__dirname,'./hello.js')

fs(file system)用的不是很多

  • 用来帮助node来操作磁盘中的文件
  • 文件操作也就是所谓的I/O操作,input output
  • 使用前需要引入
const fs = require('node:fs')

fs.readFileSync() 
//同步读取文件的方法,会阻塞后边代码的执行
//当我们通过fs模块读取磁盘中的数据时,读取到的数据总会以Buffer(缓冲区)对象的形式返回

fs.readFile(
    path.resolve(),
    (err,buffer) => {
        if(err){
        console.log("出错了~")
        } else {
        console.log(buffer.toString())
        }
    }
) //异步的读取文件的方法

//Promise版本的fs的方法
fs.readFile(path.resolve(__dirname,'./hello.js'))
    .then(buffer=>{
        console.log(buffer.toString())
    })
    .catch(err => {
        console.log('出错了~')
    }

//async调用

(async() => {
    try {
        const buffer = await fs.readFile(path.resolve(__dirname,'./hello.js'))
        console.log(buffer.toString())
    } catch (e) {
        console.log('出错误了')
    }
})()


fs.appendFile() //创建新文件,或将数据添加到已有文件中
fs.mkdir() //创建目录
fs.rmdir() //删除目录
fs.rm() //删除文件
fs.rename() //重命名
fs.copyFile() //复制文件