fs.unlink()不起作用,并且回调不会触发

时间:2018-01-09 20:30:41

标签: javascript node.js fs

它刚刚工作,我不确定是什么改变了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上的elsefs.unlink()语句,并且不会删除该文件。它的行为就像那段代码根本不存在,我无法弄清楚原因。

1 个答案:

答案 0 :(得分:0)

您正在使用异步取消链接功能,这就是它执行下一条语句的原因。使用

改为

unlinkSync