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

2024-04-28

假设我的项目根目录下有一个名为file.xml.

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

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

如果我现在跑步node ./tests/test.js从我的项目的根源来看,它说../file.xml不存在。如果我从测试目录中运行相同的命令,那么它就可以工作。

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

为什么是这样?我怎样才能避免重写我的路径fs.readFileSync?


您可以解析相对于源文件位置的路径 - 而不是当前目录 - 使用path.resolve https://nodejs.org/docs/latest/api/path.html#path_path_resolve_paths:

const path = require("path");
const file = fs.readFileSync(path.resolve(__dirname, "../file.xml"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 有没有办法在Android JellyBean TimePickerDialog 中使用取消?

    As far as I am aware versions prior to Jelly Beans had Set and Cancel buttons when using TimePickerDialog Jelly Beans ha
  • 未捕获的错误:在未加载模板编译器的情况下无法调用“compile”。请在调用“compile”之前加载“ember-template-compiler.js”

    我是 ember js 框架的新手 正在使用 ruby on Rails 和 ember debug js v 1 10 1 最新版本 我一直在网上读到 ember 更改了这个最新补丁 但我不知道如何解决我的问题 Uncaught Erro
  • 如果 bean 初始化失败,则停止 spring web 应用程序

    我编写了一个自定义 contextloaderlistener 当 Web 应用程序启动时它会被调用 public class CustomContextLoaderListener extends ContextLoaderListene
  • vim:视觉明星搜索未按预期工作

    我复制了这个函数来进行视觉搜索 and function s VSetSearch cmdtype let temp s norm gv sy let V substitute escape s a cmdtype n n g let s
  • 关于 Yii2 RBAC 的疑惑

    到目前为止 我一直在使用 Yii 1 1 14 开发 Web 应用程序 但现在是时候进行升级了 我工作的公司开发了自己的访问控制系统 我对它真的很满意 直到我看到它到底是什么样子 数据库中8个表的组合 不包括用户表 还有一堆外键 1 个控制
  • 如何检查用户是否具有有效的身份验证会话 Firebase iOS?

    在呈现我的应用程序的主视图控制器之前 我想检查用户是否仍然有有效的会话 我使用最新的 Firebase API 我想如果我使用遗产 我就能知道这一点 这是我到目前为止所做的 我在Firebase的Slack社区上发布了我的问题 没有人回答
  • Oracle:两个日期之间的天数和排除工作日如何处理负数

    我有两个日期列 并尝试测量两个日期之间的天数 不包括周末 我得到一个负数 需要帮助解决 Table CalendarDate DayNumber FirstAssgn FirstCnt DayNumber2 Id BusinessDays
  • 使用 malloc() 为 const char 字符串动态分配内存

    我正在编写一个程序 该程序从 ini 文件读取值 然后将该值传递到接受 PCSTR 即 const char 的函数中 函数是getaddrinfo 所以 我想写PCSTR ReadFromIni 为了返回一个常量字符串 我计划使用分配内存
  • 放弃root权限

    我有一个以 root 身份启动的守护进程 因此它可以绑定到低端口 出于安全原因 初始化后我非常希望它放弃 root 权限 谁能指点我已知正确C 中的一段代码可以做到这一点 我阅读了手册页 研究了不同应用程序中的各种实现 它们都是不同的 其中
  • Chrome消息传递错误:尝试使用断开连接的端口对象

    我的 Chrome 扩展使用长期存在的 端口 对象在 内容脚本 和 弹出 页面之间传递消息 弹出窗口 能够向 内容脚本 事件监听器发送消息 但是 内容脚本 中的 端口 对象无法将消息发送到 弹出 页面 var port chrome ext
  • 在 AngularJS 中的控制器之间共享数据

    我学习了如何在控制器之间共享数据 但遇到了一些问题 我有这样的html视图 div div div div
  • Jmeter 下降的最佳方法?

    我们都知道 Jmeter 并不是最擅长在运行期间更改活动线程的数量 除非您喜欢并创建以不同时间间隔触发的单独线程组 有没有人想出一个好的解决方案来在测试结束时降低速度 例如 我从 50 个线程开始 在 30 分钟内我想要 0 个活动线程 查
  • 使用不同时区的 POSIXct 到数字

    我想我一定不明白 POSIXct 是如何工作的 或者什么的 据我了解 它是自纪元以来的秒数 纪元是标准时间 例如 1970 01 01 GMT 我取两个 POSIXct 时间 一个在 EST 一个在 PST 它们是相同的绝对时间 然而 当我
  • 用于搜索内部文件的 ssh 命令

    几周前 我的两个网站可能被 ftp 暴力攻击所利用 破坏了我网站的许多文件 我发现他们通常会在js或php文件中插入以下代码 Trojan code removed as irrelevant to this question 我想通过 s
  • AWS Glue 爬网程序更改 serde

    我有带引号字符串的 csv 默认情况下爬虫会使用 LazySimpleSerde 注册该表 无论如何 我可以通过编程方式更改它以使用 OpenCSVSerde 吗 您可以使用 boto3 它是一个 aws sdk 您可以使用 python
  • 如何在 Docker 容器内动态添加 Jenkins 用户和权限

    当我为 python 项目构建声明式 Jenkins 管道时 使用 Pip 时收到以下错误消息 WARNING The directory cache pip or its parent directory is not owned or
  • Chart.js 刻度线和 X 轴之间的空间

    我正在使用 Chart js 版本 3 x 制作一个简单的画布 它只是显示价格的演变 X 轴用于时间 Y 轴用于进化百分比 我已经成功做到了这一点 但现在 我想添加一些风格 我的目标是在标记刻度和 X 轴之间添加一些空间 我用过chart
  • 无法打开 mysql-workbench

    我开始使用 mysql 但无法打开 mysql workbench 当我尝试通过 ubuntu 命令行打开它时 出现以下错误 usr lib mysql workbench mysql workbench bin 符号查找错误 usr li
  • NodeJS 的续集:支持这些功能吗?

    以下是关于sequelize支持的功能的一些问题 续集项目网站 http sequelizejs com 在决定是否使用它之前我想澄清一下 链接 效率 当链接多个查询时 这些查询是收集到对数据库的一个请求中 作为一批操作 还是每个请求单独发
  • fs.readFileSync 不是文件相关的? Node.js

    假设我的项目根目录下有一个名为file xml 假设我在tests 中有一个名为 test js 的测试文件 它有 const file fs readFileSync file xml 如果我现在跑步node tests test js从