首页 > 解决方案 > 响应 readFile 上的两个文件数据 - 节点

问题描述

我正在使用节点用两个文件响应客户端。现在,我为每个文件使用一个端点,因为我无法弄清楚如何连续传递多个文件。

这是响应文件的函数:

    exports.chartBySHA1 = function (req, res, next, id) {

        var dir = './curvas/' + id + '/curva.txt'; // id = 1e4cf04ad583e483c27b40750e6d1e0302aff058
        fs.readFile(dir, function read(err, data) {
            if (err) {
                res.status(400).send("Não foi possível buscar a curva.");
            }
            content = data;
            res.status(200).send(content);
        });
    };

除此之外,我需要更改文件的默认名称,当我到达该端点时,该名称带来 1e4cf04ad583e483c27b40750e6d1e0302aff058,但我传递了“curva.txt”的内容。

有人有任何提示吗?

标签: node.jsresponsereadfile

解决方案


问:如何将多个文件的内容传回给用户,而无需创建单独的端点。

答:有几种方法可以做到这一点。

如果每个文件的内容不是很大,那么最简单的方法是读入所有内容,然后将它们作为javascript键值对象传输回来。例如

let data = {
    file1: "This is some text from file 1",
    file2: "Text for second file"
}

res.send(data);
res.end();

如果内容特别大,那么您可以将数据流式传输到客户端,同时您可以添加一些元数据或hints告诉客户端他们将在下一刻接收什么以及文件何时结束。

github可能已经有一些库可以为您完成后者,所以我建议您在设计/编写自己的库之前货比三家。

前一种方法是最简单的。


推荐阅读