ENOENT:没有这样的文件或目录:NODE JS

时间:2019-02-05 12:41:38

标签: node.js shell filesystems fs

有人可以帮助解决这个问题吗,我知道有很多与此问题有关的问题,但是我几乎尝试了所有方法,没有任何帮助。

makeFile(dirName, fileName, content, callback) {
        if (!fs.existsSync(dirName)) {
            // fs.mkdirSync(dirName, {recursive: true});
            shell.mkdir('-p', dirName);
        }
        zlib.inflate(Buffer.from(content), (err, InfoInflated) => {
            if (err) {
                logger.error(err);
                return callback({ success: false, code: 500, err: err});
            }
let file = fs.createWriteStream(dirName + fileName, {
                    flags: 'a'
                });
            file.on('open', fd => {
                file.write(InfoInflated.toString('utf8'));
                file.end();
            }).on('error' , (err) => {
                logger.error(err);
                return callback({ success: false, code: 500, err: err});
            }).on('finish', () => {
                logger.info("file is complete !");
                return callback({success: true, code: 200, result: {message: "OK", file: dirName + fileName}});
            });
        });
    }

/tmp/files/2019-02-05/1205_undefined_undefined/1205_undefined_undefined.zip',这是创建错误的完整路径

1 个答案:

答案 0 :(得分:0)

我认为您使用的Shell语法不正确。另外,您可能不需要使用shell来创建目录,因为可以使用fs组件本身来完成它。

看看脚本的解决方案-https://jsitor.com/fh3IyKq74

它正在执行您的代码并正确显示响应。在mkdir中,请确保首先检查实际触发的空字符串。