Я разработал программу node.js, используя экспресс-фреймворк на своем компьютере, где она отлично работает без нареканий.
Однако, когда я запускаю программу на своем устройстве SUSE Studio, где она предназначена для размещения, я получаю сообщение об ошибке при любом взаимодействии с файлом.
Error: ENOENT, stat './path/to/file'
Я проверил, что права доступа к файлам верны, и это так. На моем компьютере и моем устройстве используются разные версии узла, если это важно.
Есть предположения?
__dirname + 'path/to/file';
Ответы:
Пути, указанные с помощью a,
.
относятся к текущему рабочему каталогу, а не к файлу сценария. Таким образом, файл может быть найден, если вы запустите,node app.js
но не при запускеnode folder/app.js
. Единственное исключение из этого -require('./file')
и это возможно только потому, чтоrequire
существует для каждого модуля и, следовательно, знает, из какого модуля он вызывается.Чтобы задать путь относительно скрипта, вы должны использовать
__dirname
переменную.или потенциально
источник
Вот код для использования вашего app.js
ввод указывает имя файла
источник