node.js - 响应 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”的内容。
有人有任何提示吗?
解决方案
问:如何将多个文件的内容传回给用户,而无需创建单独的端点。
答:有几种方法可以做到这一点。
如果每个文件的内容不是很大,那么最简单的方法是读入所有内容,然后将它们作为javascript
键值对象传输回来。例如
let data = {
file1: "This is some text from file 1",
file2: "Text for second file"
}
res.send(data);
res.end();
如果内容特别大,那么您可以将数据流式传输到客户端,同时您可以添加一些元数据或hints
告诉客户端他们将在下一刻接收什么以及文件何时结束。
github
可能已经有一些库可以为您完成后者,所以我建议您在设计/编写自己的库之前货比三家。
前一种方法是最简单的。
推荐阅读
- rust - 如何借用对本身位于选项内的 RefCell 内的东西的引用?
- javascript - 提交按钮冻结 chrome、safari 和 firefox 的不同行为
- php - 如何删除不存在的带有图像和mysql记录新闻的文件夹
- javascript - 分页无法正常工作 - Ngx-pagination
- java - 编写一个方法来读取包含 Int 和字符串的文件到 arraylist
- keras - 在 Keras 中加载模型后损失函数大幅增加,自定义数据,繁重的 agumentation
- unit-testing - 为每个函数编写单元测试与只为服务编写 API 测试相比有什么优势
- sql - Oracle表中基于条件的随机记录
- c# - 有没有办法使用 [FromBody] 属性进行嵌套模型绑定?
- r - 理解 R 中的马尔可夫链源代码