首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ENOENT:没有这样的文件或目录Nodejs

ENOENT:没有这样的文件或目录Nodejs
EN

Stack Overflow用户
提问于 2022-07-18 14:22:50
回答 1查看 840关注 0票数 0

我正在尝试导入存储在服务器部分下的一个名为“资源”的文件夹中的图像。

当我将图像放在本地驱动器的应用程序文件夹中时,它可以正常工作,但由于必须将其部署到我们的实时服务器上,所以很难来回复制文件。

我所犯的错误:

错误: ENOENT:没有这样的文件或目录,打开‘././resources/cp_pdf_logo.png’(节点:fs:585:3)在(C:\Development\kaizen\server\routes\emails\file:\C:\Development\kaizen\server\routes\emails\func.js:187:43) at RouteEmails.sendMail (C:\Development\kaizen\server\routes\emails\file:\C:\Development\kaizen\server\routes\emails\的Object.readFileSync (节点:fs:453:35)(节点:内部/进程/任务队列:96:5)在(C:\Development\kaizen\server\routes\orders\file:\C:\Development\kaizen\server\routes\orders\func.js:840:24)的RequestRouter._routeRequest (C:\Development\kaizen\server\socketController\file:\C:\Development\kaizen\server\socketController\requestRouter.ts:64:34) at RequestRouter.processMessage (C:\Development\kaizen\server\socketController\file:\C:\Development\kaizen\server\socketController\requestRouter.ts:43:9)在套接字处。(C:\Development\kaizen\server\socketController\file:\C:\Development\kaizen\server\socketController\socketClient.ts:62:7) { errno:-4058,syscall:'open',代码:'ENOENT',路径:‘.././resources/cp_pdf_logo.png’}

下面是我的代码示例:

代码语言:javascript
复制
let ordercplogo = this.base64_encode("../../resources/cp_pdf_logo.png")
    let orderthankyoulogo = this.base64_encode("../../resources/thankyou_logo.png")
    // let ordercplogo = this.base64_encode("/app/resources/cp_pdf_logo.png");
    // let orderthankyoulogo = this.base64_encode("/app/resources/thankyou_logo.png");

注释部分是什么工作,但从下面的图片你可以看到,我有这些文件存储在应用程序。

有人能告诉我我做错了什么吗?

PS。我还尝试将上面的图像导入

代码语言:javascript
复制
const logo1 = require("../../resources/image.png")

但也不起作用,并抛出另一个错误。

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 14:58:28

您的函数可能会尝试找到相对于工作目录的图像。如果您要执行cd /; node /app/index.jscd /app; node index.js,则会产生不同的效果。工作目录在您的活动环境中可能与本地目录不同。

有许多函数可以帮助您在内置的path模块中找到文件的路径。

假设您在一个名为routes/companies/a.js的文件中

代码语言:javascript
复制
const { resolve } = require('path');

this.base64_encode(resolve(__dirname, "../../resources/cp_pdf_logo.png"));
// Will find the absolute path to the file.

( path.relative文档页)

在CommonJS文件(使用require()的文件)中,值__filename总是引用它所在的文件,而不是主脚本文件(因此在本例中是/app/routes/companies.a.js ),而__dirname是它所在的目录。这是相同的值,没有a.js部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73023904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档