Node.js内置模块(一)

217 阅读3分钟

前言

Node.js内置了许多核心模块,这些模块提供了各种功能,从文件系统操作到网络通信,再到加密和解密等。本文将深入介绍Node.js中一些重要的内置模块,帮助开发者更好地理解和利用这些核心功能。

fs模块:文件系统操作

Node.js中的fs(File System)模块为开发者提供了丰富的文件系统操作功能。通过fs模块,我们可以轻松地读取文件、写入文件、创建目录、删除文件等。以下是fs模块的一些常见用法:

// 文件系统
const fs = require('fs');

// 同步
const syncData = fs.readFileSync('./data.txt', 'utf-8'); // 读取文件
console.log(syncData);

// 异步
fs.readFile('./data.txt', 'utf-8', (err, res) => {  // 读取文件
    if (err) throw err;
    console.log(res);
})
// Promise
fs.promises.readFile('./data.txt', 'utf-8').then(res => {  // 读取文件
    console.log(res);
})

readFile(path, options, callback)第一个参数表示要读取的文件的路径,第二个参数表示读取文件时的选项,第三个参数是一个回调函数,当文件读取完成后被调用,它有两个参数:err 和 data。

整段代码展示了Node.js中文件系统模块的三种常见文件读取方式:同步读取文件、异步读取文件和Promise读取文件。

const fs = require('fs')
fs.writeFileSync('./target.md', '举头望明月') // 写入文件

const img = fs.readFileSync('./avator.JPG',)
fs.writeFileSync('./pic/avator.JPG', img)  //将文件写入到指定目录下

writeFileSync(file, data, options)第一参数表示要写入的文件的路径,第二个参数是要写入文件的数据,第三个参数表示写入文件时的选项,通常为文件的编码。

整段代码展示了如何使用Node.js的fs模块进行文件的写入操作。可以进行文本写入和图片写入等操作。

const fs = require('fs')
console.log(fs.statSync('./target.md')); // 通过fs.statSync()方法获取文件的信息

const info = fs.statSync('./target.md')
console.log(info.isDirectory()); // 判断是否是文件夹
console.log(info.isFile()); // 判断是否是文件

statSync(path)只有一个参数,表示要获取信息的文件或目录的路径。

这段代码演示了如何使用 fs.statSync 获取文件信息,以及isDirectory()isFile()两个方法的使用。

const fs = require('fs')
fs.appendFileSync('./data.txt', '疑是地上霜')  // 向文件中追加内容
fs.renameSync('./data.txt', './data1.txt')  // 重命名文件
fs.renameSync('./data.txt', './pic/data.md')  // 移动文件

fs.unlinkSync('./pic/data.md')  // 删除文件
fs.rmSync('pic', { recursive: true }) // 删除文件夹

这段代码演示了向文件中追加内容方法(appendFileSync)、重命名(renameSync)、移动(renameSync)和删除(unlinkSync)文件。

const fs = require('fs')
const info = fs.readdirSync('./test') //读取目录
console.log(info);

fs.mkdirSync('./test-dir/data/list', {recursive: true}) //创建目录
fs.rmdirSync('./test-dir', {recursive: true}) //删除目录

fs.watch('./', {recursive: true}, (eventType, filename) => {
    console.log(`当前文件夹下${filename}文件变更为:${eventType}`);
})

这段代码展示了读取目录(readdirSync)、创建目录(mkdirSync)、 删除目录(rmdirSync)以及监视文件系统变化的方法(watch)

path模块:文件路径操作

在Node.js中,path模块是一个用于处理文件路径的核心模块,提供了一些实用的方法来处理文件和目录的路径。以下是path模块的一些常用方法:

const path = require('path')

console.log(path.join('a', 'b', 'c'));
console.log(path.join(process.cwd(), '/model', 'index')); // 以当前工作目录为基准,拼接路径

console.log(path.resolve('a', 'b', 'c'));  // 以当前文件所在目录为基准,拼接路径
console.log(path.dirname(process.cwd())); // 返回路径的目录名

console.log(path.basename('a/b/c.js')); // 返回路径的最后文件
console.log(path.basename(__filename)); // 返回当前文件的文件名

console.log(path.extname(__filename)); // 返回文件的扩展名

console.log(path.normalize('a////b//c./js')); // 讲路径转化为规范化路径

console.log(path.parse(__filename)); // 解析路径

console.log(path.sep); // 获取当前系统的路径分隔符

在这大段代码中join()方法是将路径片段 'a', 'b', 'c' 拼接起来,resolve()方法 是将路径片段解析为绝对路径,dirname()方法是返回当前工作目录的目录名,basename()方法是返回路径 'a/b/c.js' 的最后一部分,即"c.js",normalize()方法是将路径字符串规范化,即"a/b/c./js"parse()方法是解析当前文件路径字符串,返回包含多个信息的对象,sep()方法是获取当前系统的路径分隔符,在 Unix 系统上输出: '/'在 Windows 系统上输出:'\\'

感谢您的阅读,一键三连精彩继续