让node.js将缓冲区作为文件发送

时间:2016-09-15 23:24:47

标签: javascript node.js excel nginx download

我正在尝试在服务器端创建一个excel工作簿,当他们访问某个路径时会发送给用户(使用express.js) 我正在使用https://github.com/riyadhalnur/excelbuilderjs-node中的模块 我确实在workBookB64常量中有大量数据,在我的浏览器(chrome)中,我在res.end()调用后得到了处理和内容类型的标题。 但是该文件永远不会在浏览器端下载。 我让我的节点进程在Nginx反向代理后面运行,以处理SSL。 关于如何获取文件的任何想法都会很棒!

    const result      = Excel.createFile( workBook );
    const workBookB64 = new Buffer( result, 'base64' );

    res.setHeader( 'Content-Disposition', 'attachment; filename=' + fileName );
    res.setHeader( 'Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64' );
    res.end( workBookB64 );

投票,甚至没有评论?我觉得很脏,现在用的。 :(

1 个答案:

答案 0 :(得分:-1)

我自己解决了这个问题。事实证明问题在于我如何请求URL。客户端代码使用jQuery调用: $.get("/getReport")所以响应回到了这个没有回调处理程序的调用。所以对我来说,似乎它不起作用。 我使用的解决方案是消除JS,只使用锚标记,并直接调用URL。

注意:如果您觉得有必要对我的答案进行投票,至少要发表评论。