【发布时间】:2017-03-26 00:48:12
【问题描述】:
我正在使用 node.js 和 express.js 构建应用程序时遇到严重问题。
该应用程序将视频转换为 mp3。当视频长度不超过 5 分钟时,一切都按预期工作,http 服务器会向客户端发送一个下载按钮。
但是当视频太大时,服务器会过早地关闭连接,并且因为我使用的是 http 协议,客户端会重试请求,这一次在等待一段时间后会收到 ERR_EMPTY_RESPONSE。
app.post('/', function(req, res) {
var obj_dlConvert = apart_dl_cv.dlConvert(req.body.yt_url,140,apart_dl_cv.generateDir()); //the function that download from youtube and convert
var lien = obj_dlConvert.link;
var dossier = obj_dlConvert.dossier;
var video_stream = obj_dlConvert.streame;
obj_dlConvert.processus.on('end', () =>{
fs.rename(path.join(__dirname,'uploads',dossier,dossier+'.mp3'), path.join(__dirname,'uploads',dossier,'video.mp3'), function(err) {
if (err) {
res.render('dlpage.hbs',{
renameError: true
});
}else res.render('dlpage.hbs',{
dossier: dossier,
fullLink: lien
});
});
}
}
req.on("close", function() {
obj_dlConvert.processus.kill();
obj_dlConvert.processus.on('error', () => {
if (fs.existsSync(path.join(__dirname,'uploads',dossier))){
fse.removeSync(path.join(__dirname,'uploads',dossier));
}
});
});
});
【问题讨论】:
-
一些代码会很有用......
-
能否添加路由处理程序来处理文件的实际下载?
-
嗨@JeremyThille 这里是一些代码,谢谢你的帮助
-
嗨@robertklep,这里是 app.post('/', function(req, res) {} 提前谢谢你
-
@sparpar 看起来您正在将 URL 呈现到转换后的 MP3 文件;哪个 Express 路由正在处理这些 URL?
标签: javascript node.js http express