path.join()返回重复或无

vyu0f0g1  于 2021-09-23  发布在  Java
关注(0)|答案(2)|浏览(371)

我这里的情况很奇怪。
1.当我在工作中使用此代码时 tokens.js 文件

const pathToPrivKey = path.join(__dirname, "..", "src/helpers/key/id_rsa_priv.pem");

错误是:

Error: ENOENT: no such file or directory, open 'C:\Users\arpitanand\Desktop\node-app\src\src\helpers\key\id_rsa_priv.pem'

注意 src 在路径字符串中自动复制为 \src\src\ 2.当我在工作中使用此代码时 tokens.js 文件:

const pathToPrivKey = path.join(__dirname, "..", "helpers/key/id_rsa_priv.pem");

错误是:

Error: ENOENT: no such file or directory, open 'C:\Users\arpitanand\Desktop\node-app\helpers\key\id_rsa_pub.pem'

请注意,现在 /src/src/ 他缺席了!
这是我的文件夹结构:

----src
|   |
|   +---controller
|   |
|   +---helpers
|   |   |   tokens.js  //I am here
|   |   +---key
|   |           id_rsa_priv.pem //I want to access this file
|   |           id_rsa_pub.pem
+---test
        deleteUser.js

更新
1.产出 console.log(_dirname) 是:

C:\Users\arpitanand\Desktop\node-app\src\helpers

2.我已经运行过了

const pathToPrivKey = path.join(__dirname, "key/id_rsa_priv.pem");

其结果是:

Error: ENOENT: no such file or directory, open 'C:\Users\arpitanand\Desktop\node-app\helpers\key\id_rsa_priv.pem'

3.我使用 pathToPrivKey 这里,也只有这里:

const PRIV_KEY = fs.readFileSync(pathToPrivKey, "utf8");
vngu2lb8

vngu2lb81#

__dirname 是模块所在的目录,而不是程序的工作目录。
如果你有代码 src/helpers/tokens.js 并想参考 src/helpers/key/id_rsa_priv.pem ,

const keyPath = path.join(__dirname, "key/id_rsa_priv.pem");

够了。

s6fujrry

s6fujrry2#

好的,所以我不知道我的代码之前发生了什么,但我尝试使用 npm cache clean --force 同时删除我的 node modules 并重新安装它们,它的工作!

相关问题