相对路径readFile错误ENOENT:没有这样的文件

时间:2016-11-18 14:01:48

标签: javascript node.js relative-path

我有一个服务器文件,它根据我构建的restify API向用户发送电子邮件。该文件位于/lib目录下。当该文件mail_helper.js尝试读取文件./email_templates/default-inline.html时,它会失败。它试图从节点应用的email_template而不是root目录中找到lib文件。文件夹结构如下所示:

- root
   - package.json
   - index.js (requires lib/mail_helper.js)
   - lib
      - mail_helper.js (reads file ./email_templates/default-inline.html)
      - email_templates
         - default-inline.html

从根目录运行node index.js会引发错误:

  

错误:ENOENT:没有此类文件或目录,请打开&my-local-path \ root \ email-templates \ default-inline.html'

如何正确引用相对路径以避免这种情况?

1 个答案:

答案 0 :(得分:0)

如Keith的评论所述,

相对路径应该写成:

path.join(__dirname, 'email_templates', 'default-inline.html')

在我的模块中的所有位置替换之后,这工作并修复了我的所有错误。