ERROR Error: ENOENT: no such file or directory, open when create a text file in node js

ERROR Error: ENOENT: no such file or directory, open when create a text file in node js

我是 node 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' });
    }

在本地,这工作得很好。但是在 docker 里面我得到了。

错误错误:ENOENT:没有那个文件或目录,打开'../upload/2018-11-07.txt'

任何解决方案..

不要使用 ../ 这样的相对路径名。在您的应用程序中使用绝对路径。你可以说

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

或者如果您想将此文件保存在父目录中,您应该首先获取 运行 进程根路径。你可以说:

filename = process.cwd() + 'uploads/' + d.getYear() + ...

谢谢大家。我使用节点路径如下。效果很好。

var path = require('path');
var filename = path.join(__dirname,'../upload/' + d.getFullYear() + '-' + pad((d.getMonth() + 1).toString()) + '-' + pad((d.getDate()).toString()) + '.txt');