0
我有一個服務器文件,根據我建立的restify
API發送電子郵件給用戶。該文件位於/lib
目錄下。當該文件mail_helper.js
嘗試讀取文件./email_templates/default-inline.html
時,它會失敗。它試圖從節點應用程序的root
中找到email_template
文件,而不是lib
目錄中的文件。文件夾結構如下所示:相對路徑讀取文件錯誤ENOENT:沒有這樣的文件
- 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
引發錯誤:
Error: ENOENT: no such file or directory, open 'my-local-path\root\email-templates\default-inline.html'
我怎麼可以參考的相對路徑正確,以避免這種情況?
不要使用相對路徑,使用類似於''path.join(__ dirname,'email_templates','default-inline.html')'的相對路徑只對您的require調用有意義,而不能傳遞文件名關於。 – Keith
@凱斯工作!但我已經放了很多地方。你能否在回答中添加一些代碼並解釋__dirname的作用? – kirtan403