在NodeJS中读取Excel文件后无法删除



我有一个文件托管在S3桶上,我使用Axios请求从那里获取Excel文件。之后,我在本地文件系统中编写Excel文件。之后,我将Excel文件数据转换为JSON并将其作为响应发送;为此,我使用了XLSX库。

发送Excel文件数据作为JSON响应后,我想从本地文件系统中删除该Excel文件。

当我试图删除文件时,它删除失败以及读取文件失败。但是当文件已经可用时,它也会读取文件并发送响应。

下面是我的代码:
const response = await axios.get(data.me_url, { responseType: 'arraybuffer' });
if (response) {
const ostream = await fs.createWriteStream(`./${filename}`, 'binary');
ostream.write(response.data);
ostream.end();
const file = xlsx.readFile(`./${filename}`);
const sheetNames = file.SheetNames;
const totalSheets = sheetNames.length;
let parsedData = [];
for (let i = 0; i < totalSheets; i++) {
const tempData = xlsx.utils.sheet_to_json(file.Sheets[sheetNames[i]]);
tempData.shift();
parsedData.push(...tempData);
}
if (parsedData.length > 0) {
console.log('if filename',filename);
try {
fs.unlinkSync(`./${filename}`);

console.log("Delete File successfully.");
return res.status(200).send({ 'data': parsedData, 'message': 'Success', 'code': 200 });
} catch (error) {
console.log(error);
}
}
}

我在上面的代码做错了什么?

您不需要在本地机器上创建文件,直接将文件Array Buffer直接发送到xlsx,如这里的链接所述

最新更新