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

发布于 2021-01-31 23:06:46

最近,我开始使用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中那样设置内容类型和内容处置

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

关注者
0
被浏览
91
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    我做了这样的事情:

    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);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看