Подтвердить что ты не робот

Node.js, не удается открыть файлы. Ошибка: ENOENT, stat './path/to/file'

Я разработал программу node.js, используя экспресс-инфраструктуру на моем компьютере, где она работает нормально, без каких-либо жалоб.

Однако, когда я запускаю программу на своем устройстве SUSE Studio, где он предназначен для жизни, я получаю сообщение об ошибке при любом взаимодействии файлов.

Error: ENOENT, stat './path/to/file'

Я проверил, что права на файл правильные, какие они есть. Мой компьютер и мое устройство работают с разными версиями node, если это имеет значение.

Любые мысли?

4b9b3361

Ответ 1

Пути, указанные с помощью ., относятся к текущему рабочему каталогу, а не к файлу script. Поэтому файл можно найти, если вы запустите node app.js, но не выполните node folder/app.js. Единственным исключением является require('./file'), и это возможно только потому, что require существует для каждого модуля и, следовательно, знает, из какого модуля он вызывается.

Чтобы создать путь относительно script, вы должны использовать переменную __dirname.

var path = require('path');

path.join(__dirname, 'path/to/file')

или потенциально

path.join(__dirname, 'path', 'to', 'file')

Ответ 2

Здесь код для использования вашего app.js

input указывает имя файла

res.download(__dirname+'/'+input);