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

问题描述 投票:0回答:1

我有一个路由器下载某些文件。但是,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);
});
node.js
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.