javascript - 节点将相对路径转换为绝对路径,不需要
问题描述
我有以下问题,在函数 sendDownload(downlodable ,objPathArray, responseObject) 我收到参数 objPathArray 是这样的:
[{"pathToFile":"./REPORTS/portfolio/onDemand/Portfolio_report_HP_17.08.2021.xlsx","file":"Portfolio_report_HP_17.08.2021.xlsx"}]
功能:
function sendDownload(downlodable ,objPathArray, responseObject) {
if (downlodable) {
responseObject.download((objPathArray[0].pathToFile), (objPathArray[0].file))
console.log('HERE ' + JSON.stringify(objPathArray))
}
}
但是当我在我的应用程序中调用该函数时,我收到此错误Error: ENOENT: no such file or directory, stat 'C:\Work\reporting-server\REPORTS\portfolio\onDemand\Portfolio_report_HP_17.08.2021.xlsx'
,这是因为 Node 正在以绝对路径更改文件的相对路径。为了解决这个问题,对我来说最好的选择是什么?
谢谢~
解决方案
Node.js必须解析路径才能找到文件。
如果你给它一个相对路径,那么它必须从某个地方开始,那个地方就是当前工作目录。
如果您希望它从其他地方读取文件,请自己将其解析为绝对路径。
一般来说,执行此操作的工具会path.resolve
告诉它从哪里开始,例如配置文件、环境变量或模块所在的目录。
推荐阅读
- python - 机器学习 - 在 Python 中从 Octave 代码实现梯度下降
- php - PHP 谷歌 Firestore | 如何按引用字段查询?
- python - Tortoise ORM for Python 没有实体的返回关系(Pyndantic,FastAPI)
- excel - VBA Excel,如何在特定列中提取最大值并在特定工作表中显示最大值
- database - Vb.Net 应用程序安装程序不更新访问数据库
- c - 在 C 代码中使用 asm 并在没有 -no-pie 选项的情况下进行编译
- r - GGplot不为折线图生成线性y轴
- spring-boot - Springboot+Java中的异步调用
- swiftui - SwiftUI 中结构继承的方法
- node.js - ReactNative - 在 socket.io 中发送图像