NodeJS

Причина ошибки Error: ENOENT, open 'c:\Path\file.name' в NodeJS – это отсутствие файла указанного файла. Очень легко его воспроизвести на примере по работе с файловой системой 'fs'.

1. Сохраните файл example_log.txt с произвольным текстовым содержимым в директории C:\Sites\APISite\

2. Сохраните в файле js.js приведенный ниже код:

3. Запустите его из командной строки NodeJS следующей командой

node c:\Sites\APISite\js.js

Рис.1. Консоль команд NodeJS

Рис.1. Консоль команд NodeJS

 

В результате получите ошибку, сообщающую, что файл не найден.

Почему так? Для вас очевидно, что раз файлы находятся в одной директории, то путь можно не указывать. Но для выполняющей среды известен только путь, который запустился по умолчанию. Для пользователей Windows это будет "c:\Users\имя_пользователя". И работа будет проходить с этой директорией, а не с другой.

Есть как минимум 2 решения проблемы.

Решение 1. Перед запуском js файла перейти в ту директорию, где он сохранен, с помощью команды  "cd c:\Sites\APISite\"

Тогда запуск приложения будет осуществляться так (Рис.2):

node js.js

Рис.2. Смена директории и запуск скрипта в NodeJS

Рис.2. Смена директории и запуск скрипта в NodeJS

Решение 2. В коде файла js.js указать полный путь к открываемому файлу. Для NodeJS в Windows нужно указать путь так:

fs.readFile('c:/Sites/APISite/example_log.txt', function (err, logData)

 

 

Такой код можно запускать из любой директории.