Node.js 学习笔记04|核心模块 Process、path方法、fs方法

本文介绍了Node.js的几个核心模块:process用于处理进程信息和操作,如process.exit和process.nextTick;path模块提供了处理路径的工具,如path.resolve;fs模块则用于文件系统的读写操作,包括同步和异步方法,如fs.readFile和fs.writeFile,以及Buffer对象的使用。
摘要由CSDN通过智能技术生成

核心模块 是node中自带的对象 可以直接在node中直接使用

window是浏览器的宿主对象 node中没有

global 是node的全局对象 作用类似于window

ES标准下,全局对象的标准名应该是globalThis

01.process

表示当前的node的进程;通过该对象可以获取进程的信息,或者对进程作各种操作。process是一个全局变量,可以直接使用。

process.exit() 结束当前进程 终止node

process.nextTick() 表示将函数插入到 tick队列中

进程运行顺序:

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


setTimeout(() => {
    console.log(1); //宏任务队列
})

queueMicrotask(() => {
    console.log(2); //微任务队列
})

process.nextTick(() => {
    console.log(3);
})

console.log(4);//调用栈

//运行结果:4321

02.path

path用来引入路径。通过path可以用来获取各种路径。

  •         引入 const path = require("node:path")
  •         生成 path.resolve([...paths])        用来生成一个绝对路径

注意:通过不同方式执行代码时,工作目录可能会发生变化。如果将一个相对路径作为参数,则resolve会自动将其转换为绝对路径,此时根据工作目录的不同,它所产生的绝对路径也不同。一般会将一个绝对路径作为第一个参数,一个相对路径作为第二个参数,这样它会自动计算出最终的路径。

使用 const result = path.resolve(__dirname,"./...") 确保不同的情况下路径不变

03.file system(fs)

fs用来帮助node操作磁盘中的文件进行I/O操作(input output)

引入:   const fs = require("node:fs")

当通过fs模块读取磁盘中的数据时,读取到的数据总会以Buffer对象的形式返回。buffer是一个临时用来存储数据的缓冲区。

const buf = fs.readFileSync(path.resolve(__dirname,"./hello.txt"))
//同步使用方法 会阻塞后续程序
//Sync表示该方法为同步的方法 所以文件在没读出来之前是会阻塞后续代码的

//异步调用方法
fs.readFile(
    path.resolve(__dirname,"./hello.txt"),
    (err,buffer) => {
        // console.log(err);
        if(err){
            console.log("出错啦!");
        }else{
            console.log(buffer.toString());
        }
    }
)

//Promise版本的fs方法

const fs = require("node:fs/promises")
fs.readFile(path.resolve(__dirname,"./hello.txt"))
    .then(buffer =>{
        console.log(buffer.toString());
    }).catch(e => {
        console.log("出错啦!");
    })
//立即执行函数
;(async() =>{
    try{
        const buffer = await fs.readFile(path.resolve(__dirname,"./hello.txt"))
        console.log(buffer.toString());
    }catch(e){
        console.log("出错啦!");
    }
})()

fs的其他方法

fs.readFile() 读取文件

fs.appendFile() 创建新文件,或将数据添加到已有文件中

fs.mkdir() 创建目录

fs.rmdir() 删除目录

fs.rm() 删除文件

fs.rename() 重命名

fs.copyFile() 复制文件

使用方法:

fs.appendFile(  
    path.resolve(__dirname,"./hello123.txt"),
    "happy Day!"
).then(r => {
    // console.log(r);
    console.log("添加成功");
})

//使用appendFile方法移动文文件
fs.readFile(".../aaa.png")
    .then(buffer =>{
        return fs.appendFile(
            path.resolve(__dirname,"./hhh.jpg")
            ,buffer
        )
    }).then(()=>{
        console.log("操作成功!");
    })

/* 
    mkdir可以接收一个配置对象作为第二个参数 recursive
        通过该对象可以对方法的功能进行配置
    recursive 递归 默认值是false
        设置为true后会自动创建不存在的上一级目录
*/

fs.mkdir(path.resolve(__dirname,"./hello/abc"),{ recursive:true})
    .then(r =>{
        console.log("操作成功!");
    }).catch(err => {
        console.log("操作失败!",err);
    })

//移除目录
fs.rmdir(path.resolve(__dirname,"./hello"),{ recursive:true})
    .then(r =>{
        console.log("操作成功!");
    })

fs.rename(
    path.resolve(__dirname,"../111.jpg"),
    path.resolve(__dirname,"./111.jpg")
).then(r =>{
    console.log("操作成功!");
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值