2016-11-15 41 views
0

我想生成一個zip文件與數據庫返回的文件名稱。我使用下面的代碼:傳遞字符串仍然nodejs res.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'} 

和類型爲字符串,但我得到一個錯誤,路徑必須是資源的字符串。拉鍊

+0

嘗試使用toString()將其轉換爲字符串。例如:{path:'./'+ filenameArray [0] .toString(),name:filenameArray [0]} –

+0

如果你不讀它,你爲什麼要在循環中寫'pathforZip'? – greuze

+1

@Surjeet Bhadauriya它沒有工作 – AJS

回答

1

我想你想要的是創造objetcs數組傳遞給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'); 

對不對?

+1

是的,你是對的。 – AJS

+0

所以@ABC,投票的答案,並將其標記爲接受:) – greuze

+1

完成!非常感謝 !! – AJS

相關問題