我有一个简单的基于Express 4的API,它输出一个MP3文件,该文件是根据提供的一些参数生成的。然而,在回复发出后,我似乎无法删除这个临时MP3文件。
What I have:
app.get('/endpoint', function(request, response) {
// Distill parameters from request and create tempFileMp3
var stat = Fs.statSync(tempFileMp3);
response.writeHead(status, {
'Content-Type': 'audio/mpeg',
'Content-Length': stat.size
});
stream = Fs.createReadStream(tempFileMp3);
stream.pipe(response);
});
起初,我希望我能够在stream
事件中删除tempFileMp3
, end
或finish
事件:
stream
.on('end', function() {
Fs.unlinkSync(tempFileMp3);
})
.on('close', function() {
Fs.unlinkSync(tempFileMp3);
})
;
但是end
和close
事件都没有被触发。
回复后如何删除临时MP3文件?
尝试捕获响应完成:
res.on('finish', function() {
// remove temp files
});
res.on('error', function() {
// remove temp files
});