传递的字符串仍然是nodejs res.zip,错误路径必须是字符串

时间:2016-11-15 09:11:03

标签: javascript node.js

我正在尝试生成一个包含数据库返回的文件名的zip文件。我使用以下代码:

var pathforZip = '';
for(let k=0;k<filenameArray.length;k++){
    if(resultset[k].length > 0){
        pathforZip += "{ path:"+"'./"+filenameArray[k]+"', name: "+"'"+filenameArray[k]+"'},";
    }
}   

pathforZip = pathforZip.substring(0, (pathforZip.length-1));

res.zip([pathforZip],new Date().getTime()+'.zip');

当我打印pathforZip及其类型时,它会给我

{ path:'./begins.csv', name: 'begins.csv'},
{ path:'./ends.csv', name: 'ends.csv'},
{ path:'./crashes.csv', name: 'crashes.csv'} 

并输入一个字符串,但是我得到一个错误,路径必须是res.zip的字符串

1 个答案:

答案 0 :(得分:1)

我认为你想要的是创建一个objetc数组来传递给res.zip,如下所示:

let paths = [];
for(let k=0;k<filenameArray.length;k++){
    if(resultset[k].length > 0){
        paths.push({ path:'./'+filenameArray[k], name: filenameArray[k]};
    }
}   

res.zip(paths, new Date().getTime()+'.zip');

正确?