Node.js 从NodeJS返回文件数组
我一直在使用res.sendFile为使用nodej的文件提供服务,例如Node.js 从NodeJS返回文件数组,node.js,Node.js,我一直在使用res.sendFile为使用nodej的文件提供服务,例如 res.sendFile(path.resolve(fullpath)) 但我想返回一个相同的数组。 差不多 res.sendFile([path.resolve(fullpath),path.resolve(fullpath)]) 但这会返回一个错误 如何返回文件数组?res.sendFile获取单个字符串作为参数。不管你做什么,你都不能给它传递数组 您可以做的是预先构建阵列,并使用来分别发送每个文件: paths
res.sendFile(path.resolve(fullpath))
但我想返回一个相同的数组。
差不多
res.sendFile([path.resolve(fullpath),path.resolve(fullpath)])
但这会返回一个错误
如何返回文件数组?
res.sendFile
获取单个字符串作为参数。不管你做什么,你都不能给它传递数组
您可以做的是预先构建阵列,并使用来分别发送每个文件:
paths = [path.resolve(fullpath1),path.resolve(fullpath2)];
paths.forEach( path => res.sendFile(path) );
如果目标客户机是web浏览器,则不能下载多个文件,因为http协议不允许这样做。您可以做的是压缩文件并将其发送回客户端 你可以用 以下示例来自文档:
var app = require('express')();
var zip = require('express-zip');
app.get('/', function(req, res) {
res.zip([
{ path: '/path/to/file1.name', name: '/path/in/zip/file1.name' }
{ path: '/path/to/file2.name', name: 'file2.name' }
]);
});
app.listen(3000);
这是不可能的。你可以做的是创建一个档案,然后传输档案。当使用这个时,我只看到一个文件通过邮递员@当然,如果你有三支枪,你会在最后分别发送每个文件。正如我所说,使用
res.sendfile
无法发送多个原始文件。您可以使用forEach on path数组逐个发送它们,也可以使用另一个建议的答案—压缩它们并将其压缩发送。您必须在客户端进行更改,这样才能获取zip文件并对其进行解压缩。zip文件不是一个选项,移动后端使用它接收HTML页面,然后进行渲染。我可以将其作为JSON数组发送,然后进行渲染,但这并不理想。