首先看一下代码
// 我的路径是/code/Node.js/test.js
const fs = require('fs')
console.log(fs.readdirSync('./')) //然后我在这执行run code(下的一个插件)
//打印['Node.js']
这时候我就发现不对劲了 这时候的当前目录明明就是Node.js下面的目录啊 按道理应该打印test.js才对啊
后来我发现在终端里是这样的
E:\Code>
于是我就怀疑难道这个node执行时候的相对路径是相对的这个路径?
于是我cd进去运行
E:\Code> cd Node.js
E:\Code\Node.js> node test.js
['test']
果然我猜的没错
用node执行文件时 使用的相对路径**是相对node命令执行时的相对路径 而不是相对于当前执行文件的相对路径 **所以啊 使用node执行文件操作时 相对路径不太可靠 不长点就还真发现不来这个东西 好在我脑子还行 哈哈哈哈
总结
操作文件系统时 可以配合__dirname 因为这获取当前执行文件的所在文件夹的绝对路径,就算你把他移动了执行时获取的绝对路径也会跟着变 比相对路径靠谱
Node.js执行文件时的路径解析问题

本文探讨了在Node.js中使用`fs.readdirSync`时遇到的路径问题。作者发现,`node`命令执行文件时使用的相对路径是相对于命令执行的位置,而非当前执行文件的路径。通过示例代码和终端输出,作者验证了这一行为,并建议在操作文件系统时使用`__dirname`获取更可靠的绝对路径,以避免路径相关的问题。
366

被折叠的 条评论
为什么被折叠?



