一尘不染

提示要使用node.js和node-csv-parser(节点模块)弹出的CSV文件下载

node.js

最近,我开始使用node.js。在我的一个项目中完成一项需求时,我面临一个问题,即我应该能够动态地向csv文件中写入一些数据,并让它作为弹出窗口提示用户下载(使用保存和取消选项-
与我们通常一样)看到)。谷歌搜索一段时间后,我决定使用csv npm模块https://github.com/wdavidw/node-csv-
parser。我能够将数据写入文件并使用此模块保存。我想提示一个弹出窗口,用于选择是否保存该文件。

我的代码看起来像这样:

    // Sample Data 
    var data = [["id", "subject1", "subject2", "subject3"], ["jack", 85, 90, 68], ["sam", 77, 89, 69]]

    // Server Side Code    
    var csv = require('../../node_modules/csv');            
    var fs = require('fs');

    createCSV = function(data, callback) {
        csv().from(data).to(fs.createWriteStream('D:/test.csv')) // writing to a file           
    }

    // Client side call sample
    $("#exportToCSV").click(function() {
        callToServer.createCSV(data);
       return false;
    });

就编写csv文件而言,此方法工作良好。

  • 我想立即提示此文件以供用户下载。
  • 如果可以在不保存文件的情况下完成此操作,那就太好了。
  • 如何像在PHP中那样设置内容类型和内容处置

任何帮助是极大的赞赏。-谢谢


阅读 279

收藏
2020-07-07

共1个答案

一尘不染

我做了这样的事情:

http.createServer(function(request, response) {
    response.setHeader('Content-disposition', 'attachment; filename=testing.csv');
    response.writeHead(200, {
        'Content-Type': 'text/csv'
    });

    csv().from(data).to(response)

})
.listen(3000);
2020-07-07