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