2016-03-18 104 views
2

我想在我的服務器上下載一個zip文件的下載鏈接,但我目前收到此錯誤:(請注意,只是在本地機器上測試它)從我的Node.js服務器下載文件時出錯

{ [Error: ENOENT: no such file or directory, stat 'C:\Users\Jordan\Desktop\Websites\HappyCamel\Users\Jordan\Desktop\Websites\HappyCamel'] 
errno: -4058, 
code: 'ENOENT', 
syscall: 'stat', 
path: 'C:\\Users\\Jordan\\Desktop\\Websites\\HappyCamel\\Users\\Jordan\\Desktop\\Websites\\HappyCamel', 
expose: false, 
statusCode: 404, 
status: 404 } 

相關的代碼是這樣的:

router.get('/file/:name', function(req, res, next) { 
    console.log('test123'); //successfully prints to console 
    res.download('Users/Jordan/Desktop/Websites/HappyCamel/', 'test123.zip', function(err) { 
     console.log('test456'); //successfully prints to console 
     if(err) { 
      console.log(err) //I'm assuming this is source of logged error 
     } else { 
      console.log("no error"); //doesn't print 
     } 
    }); 
}) 

編輯:

更改此行固定它

res.download('./test123.zip', 'test123.zip', function(err) { 

,但現在我得到我的瀏覽器

angular.min.js:114 ReferenceError: success is not defined 

錯誤,但在我的節點控制檯沒有錯誤(我的 「沒有錯誤」 行打印)

+0

這是否路徑中?該結構看起來很奇怪,因爲你有Users \ Jordan .... \ Users \ Jordan重複了兩次。你的下載路徑很可能想要類似於__dirname +'路徑' – ckross01

回答

2

你正在使用相對路徑。當您這樣做時:

res.download('Users/Jordan/Desktop/Websites/HappyCamel/', 'test123.zip', function(err) { 

它會在當前文件的目錄中查找Users/Jordan/Desktop/Websites/HappyCamel/。看起來你需要的是完整路徑,或更好地看起來位於與您的代碼文件的錯誤正確的相對路徑 - ,所以這應該這樣做:

res.download('./', 'test123.zip', function(err) { 
+0

謝謝,我通過將其更改爲 'res.download('./ test123.zip','test123.zip',功能(ERR){' 但現在我得到 'angular.min.js:114的ReferenceError:成功不是defined'在我的瀏覽器 ,沒有從節點的錯誤任何想法應該是什麼? –