ОШИБКА Ошибка: ENOENT: нет такого файла или каталога, откройте при создании текстового файла в узле js - PullRequest
0 голосов
/ 07 ноября 2018

Я новичок в узле JS, пожалуйста, помогите мне решить эту проблему. Я хочу создать текстовый файл в узле JS. Для этого я использую следующий сегмент кода.

    var d = new Date();
    var filename = '../upload/' + d.getFullYear() + '-' + pad((d.getMonth() + 1).toString()) + '-' + pad((d.getDate()).toString()) + '.txt';
    if (currentlogstreamfilename != filename) {
        currentlogstreamfilename = filename;
        console.log("Path: " + currentlogstreamfilename);
        currentlogstream = fs.createWriteStream(currentlogstreamfilename, { flags: 'a' });
    }

локально это работает отлично. Но в докер я попал.

Ошибка: ENOENT: нет такого файла или каталога, откройте '../upload/2018-11-07.txt'

Любое решение для этого ..

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Спасибо за все. Я использовал путь узла следующим образом. Работало нормально.

var path = require('path');
var filename = path.join(__dirname,'../upload/' + d.getFullYear() + '-' + pad((d.getMonth() + 1).toString()) + '-' + pad((d.getDate()).toString()) + '.txt');
0 голосов
/ 07 ноября 2018

не используйте относительный путь, например ../. используйте абсолютный путь в вашем приложении. Вы можете сказать

filename = __dirname + '/upload + d.getYear() + ...

или если вы хотите сохранить этот файл в родительском каталоге, вы должны сначала запустить корневой путь процесса. что вы можете сказать:

filename = process.cwd() + 'uploads/' + d.getYear() + ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...