有人可以帮助解决这个问题,我知道有很多关于这个问题的问题,但我已经试过几乎所有的东西,没有什么帮助。
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”这是创建一个错误的完整路径
我认为你正在使用shell的语法错误。还你可能不需要使用shell创建的目录,因为它可以使用FS组件本身来完成。
看看您的脚本解决方案 - https://jsitor.com/fh3IyKq74
它正在执行你的代码,也显示正确的响应。在mkdir
确保你应该检查空字符串第一实际射击这一点。