首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点JS -没有这样的文件或目录文件系统模块

节点JS -没有这样的文件或目录文件系统模块
EN

Stack Overflow用户
提问于 2021-05-26 08:38:19
回答 2查看 663关注 0票数 0

我试图在发送电子邮件时使用电子邮件模板。这是我的项目结构。

代码语言:javascript
复制
project-name
  client
  server
    email-templates
      confirm-email.html
    controllers
      accounts.js (currently here)

我正在像这样读取模板文件。

代码语言:javascript
复制
fs.readFile('../email-templates/confirm-email.html', async (error, html) => {
  // do some stuff
})

我认为已经进入了一条正确的道路。但我还是犯了个错误。

错误: ENOENT:没有这样的文件或目录

我已经核对了其他问题。但是他们使用的是变量__dirname,因为我使用的是ES6模块,我没有访问该变量的权限。

代码语言:javascript
复制
// package.json
"type": "module",

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2021-05-26 08:45:40

尝试在尝试访问文件时使用path模块解析文件的绝对路径。

代码语言:javascript
复制
fs.readFile(path.resolve(__dirname, '../email-templates/confirm-email.html'), function(err, html) {// do some stuff})
票数 2
EN

Stack Overflow用户

发布于 2021-05-26 09:34:15

我无法访问__dirname,因为我使用的是ES6模块。我使用了path.resolve()来修复错误。

代码语言:javascript
复制
fs.readFile(
  path.join(path.resolve(), 'email-templates', 'confirm-email.html'),
  'utf8',
  (error, html) => {
    // do some stuff
  }
);

若要访问__dirname变量,请执行以下操作:

代码语言:javascript
复制
const __dirname = path.resolve();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67701382

复制
相关文章

相似问题

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