3
我有一個簡單的基於Express 4的API,可輸出基於某些提供的參數生成的MP3文件。但是,我似乎無法刪除這個臨時的MP3文件後,已經發出響應。在發送響應之後刪除臨時文件的正確方法
我有什麼:
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文件?
嘗試'stream.on( '完成',函數(){Fs.unlinkSync(tempFileMp3);});'? https://nodejs.org/api/stream.html#stream_event_finish –
@SwarajGiri實際上已經嘗試過。忘了提,無濟於事。 – Luke