У меня есть файл сервера, который отправляет электронные письма пользователю на основе API restify
, который я создал. Этот файл находится в каталоге /lib
. И когда этот файл mail_helper.js
пытается прочитать файл ./email_templates/default-inline.html
, он терпит неудачу. Он пытается найти файл email_template
из приложения root
узла, а не внутри lib
. Структура папок выглядит следующим образом:Относительный путь readFile error 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')' относительный путь имеет смысл только для ваших вызовов, а не при передаче имен файлов около. – Keith
@ Keith Это сработало! Но я поставил много мест. Не могли бы вы добавить код в ответ и объяснить, что такое __dirname? – kirtan403