我有一个要转换为使用React前端的Node / EJS应用程序。该应用程序的主要功能是发出POST请求以查找一些数据,然后将结果打包为.zip文件并将其下载到用户的计算机上。使用存档程序包,这是现有(仅节点)功能的外观:
Promise.map(<stuff to lookup>, function(edition) {
return <model function>
})
.then(function(results) {
let zip = archiver('zip');
res.header('Content-Type', 'application/zip');
res.header('Content-Disposition', 'attachment; filename="zipFile.zip"');
zip.pipe(res);
for (image of results) {
<add image to zip>
}
zip.on('error', function(err) {
throw err;
});
zip.finalize();
});
我找不到新的React前端使之工作的方法。问题似乎是React不允许下载POST请求吗?我想到的一个可能的替代方法是创建一个临时文件,并将其链接传递回React,然后运行GET请求以下载它。但是应用程序原样是完全无状态的,所有信息都来自第三方API,并且在使用此方法后会立即被忘记,我希望尽可能保持这种状态。