javascript - 如何从 json 中的路由转换 res 而不是回调函数中的数组?
问题描述
我正在使用 ffmpeg 从视频中提取帧,因为它的回调函数返回数组中提取帧的路径。
但是,响应不会传输回 ajax 成功。它仅显示在同一条路线上,可能是因为我发送的响应是数组形式。
需要帮助!
代码 - -
app.post('/upload',app.upload.single('video-upl'),function(req,res){
var video_file = fs.createReadStream(req.file.path); // Storing File path
var video_String = JSON.stringify(video_file); // Converting Json into String of req.file.path
var video_res = JSON.parse(video_String); // Parsing req.file.path
var valueArray = tosplit(video_res.path); //Splitting Path in values
var filenme = req.file.originalname; // Requesting Original File name
var filnameStringify = JSON.stringify(filenme); //Stringify file original name
var filnameParse = JSON.parse(filnameStringify); //Parsing file Original name
var filename = extsplit(filnameParse); // Spliting File name from path
var finalpath = './public/class/'+valueArray[2]; // Path to Video for Extracting Images
var destpath = './public/class/'+filename[0]+'/'; //Destinaton Path to Store Images
var zipdest = './public/class/'+filename[0]; //Destination of File to be Zip
var articleid = extsplit(valueArray[2]); //For ArticleId through Video Name
try {
var process = new ffmpeg(finalpath);
process.then(function (video) {
// Callback mode
video.fnExtractFrameToJPG(destpath, {
frame_rate: 1,
number: 50,
keep_pixel_aspect_ratio : true,
keep_aspect_ratio: true,
file_name : filename[0]+'_%s'
}, function (error,files){
if(!error)
{
var fileJsonStr = JSON.stringify(files);
makeZip(zipdest,'./public/class/'+filename[0]+'.zip');
console.log(res);
res.send(fileJsonStr);
}
});
}, function (err) {
console.log('Error: ' + err);
});
}
catch (e) {
console.log(e.code);
console.log(e.msg);
}
});
--Ajax 代码 ---
$('#send_file').submit(function(e){
e.preventDefault();
var video_file = $('#video-upl').val();
var profilehtml = '';
$(this).ajaxSubmit
({
data: {videofile : video_file},
datatype: 'JSON',
contentType: 'application/json',
success: function(response){
for(i=0;i<=response.length;i++)
{
profilehtml += '<tr>';
profilehtml += '<td>'+response[i]+'</td>';
profilehtml += '</tr>';
}
$("#img-bind").html(profilehtml);
}
});
});
解决方案
推荐阅读
- spring - Spring Batch Bean Scope 转换旧版应用程序
- asp.net-core - 如何在 Asp.Net MVC Core 3.1 c# 中实现 HttpDelete 和 HttpPut。解决 HTTP 错误 405?
- c++ - macOS Big Sur 上的编译警告:使用 Intel icpc 编译的 C++ 代码
- python - 在 PyQt5 DialogButtonBox 中使用 3 个按钮
- node.js - 实现 React 应用程序的服务器端渲染时出错
- mysql - 避免 MySQL 更新重复
- google-sheets - 如何忽略谷歌表格总和计算中的文本/字符串?
- php - Symfony 5 和 Docker:缺少 RABBITMQ_DSN 环境变量
- google-cloud-platform - 将 gcloud 虚拟机实例监控数据提取到 BigQuery
- c# - 如何在单击视图模型中的按钮时显示 Xamarin 日期选择器