它刚刚工作,我不确定是什么改变了fs.unlink()
函数似乎完全被跳过的地方。要删除的文件保存在根包目录中,而包含我的代码的typescript文件位于dist
文件夹中。当我仅传递fileName
这样的fs.unlink(fileName)
时,它就有用了。但是现在这不起作用,当我使用fs.unlink("./" + fileName)
或fs.unlink("../" + fileName)
明确地将它指向根文件夹时,或者甚至当我对路径进行硬编码时,它也不起作用!
以下是我的代码:
s3.putObject(params, function(err, data){
// ...
console.log("Data uploaded to S3 bucket");
fs.unlink("./" + fileName, function(err){
if(err) {
return console.log("Delete error: " + err);
}
else{
console.log("file deleted successfully");
}
});
console.log("Before process.exit()");
process.exit();
});
运行时,此代码记录:
Data uploaded to S3 bucket
Before process.exit()
正如您所看到的,它会跳过if
上的else
和fs.unlink()
语句,并且不会删除该文件。它的行为就像那段代码根本不存在,我无法弄清楚原因。
答案 0 :(得分:0)
您正在使用异步取消链接功能,这就是它执行下一条语句的原因。使用
改为unlinkSync 。