首页 > 解决方案 > 如何从 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);
            }
   });
});

标签: javascriptarraysjsonnode.jsajax

解决方案


推荐阅读