gpt4 book ai didi

node.js - fs.readFileSync 不是文件相关的? Node .js

转载 作者:IT老高 更新时间:2023-10-28 21:54:33 24 4
gpt4 key购买 nike

假设我的项目的根目录中有一个名为 file.xml 的文件。

假设我在 tests/中有一个名为“test.js”的测试文件,它有

const file = fs.readFileSync("../file.xml");

如果我现在从项目的根目录运行 node ./tests/test.js,它会显示 ../file.xml 不存在。如果我在测试目录中运行相同的命令,那么它可以工作。

似乎 fs.readFileSync 与调用脚本的目录相关,而不是脚本实际所在的目录。如果我在 test.js 中编写 fs.readFileSync("./file.xml") 它看起来会更加困惑并且与 中的相对路径不一致require 语句是文件相关的。

这是为什么?如何避免重写 fs.readFileSync 中的路径?

最佳答案

您可以使用 path.resolve 解析相对于源文件位置的路径,而不是当前目录。 :

const path = require("path");
const file = fs.readFileSync(path.resolve(__dirname, "../file.xml"));

关于node.js - fs.readFileSync 不是文件相关的? Node .js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44600943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com