通过node.js下载zip文件第一次失败,但在后续尝试中有效

时间:2018-01-01 09:50:11

标签: node.js

我有一台路由器可以下载某些文件。但是,zip文件第一次没有下载,它坚持启动。然而,在第二次尝试,一切都很好。我在做什么不对劲? createfile函数只创建一个正在压缩的文件

app.post('/downlaod_file',ensureAuthenticated,(req,res)=>{
    var json_array=[];
        for (var i = 0, len = req.body.idlist.length; i < len; i++) {
            var path = createfile(req.body.idlist[i])
            json_array.push({
                path: 'file_' + req.body.idlist[i] + '.docx' ,
                name: 'file' + req.body.idlist[i] + '.docx'
            })

        }
        res.zip(json_array);
});

1 个答案:

答案 0 :(得分:0)

我相信你的问题只是文件是第一次创建的,但没有准备好及时返回它。第二次你打电话时,文件已经存在,所以它可以工作。

我建议修改你的createFile,以便在操作完成时进行回调或返回一个promise。然后使用createFile的完成来延迟对res.zip()的调用。这将确保文件在返回响应之前完成。

相关问题