本文共 994 字,大约阅读时间需要 3 分钟。
下面通过一个简单的案例来说明JS相对路径和FS相对路径的区别
在JS中,require函数中的路径表示机制与文件系统模块(FS)中的路径表示机制有所不同。
require中,路径中的./表示同级目录,../表示往上跳一级目录。./表示相对于当前工作目录的路径。通过以下代码示例可以更直观地理解两者的区别:
// js01.jsconst fs = require('fs');const path = require('path');// 读取mm.txt文件内容const filePath = path.join(__dirname, 'mm.txt');const data = fs.readFileSync(filePath, 'utf8');console.log('读取结果:', data); require中的路径:
./ 表示当前目录../ 表示父目录require('../utils/logger') 会从父目录的utils文件夹中读取logger.js文件。FS模块中的路径:
./ 总是表示当前工作目录fs.readFileSync('./mm.txt', 'utf8') 会从当前工作目录中读取mm.txt文件./不会指向项目根目录假设你有一个项目目录结构如下:
project/ src/ js/ js01.js mm.txt
当你在js01.js中运行脚本时:
project/src/js目录require '../mm.txt' 会从project/src/mm.txt读取文件如果你在js02.js中运行脚本(位于project/src/js02.js):
project/src/js02.js所在目录require '../mm.txt' 会从project/src/mm.txt读取文件require和fs时,路径是正确的,避免因为工作目录切换导致路径错误希望以上内容能帮助你更好地理解JS和FS模块中的路径表示方式。
转载地址:http://mmcc.baihongyu.com/