从我的Node.js服务器下载文件时出错

时间:2016-03-18 22:52:34

标签: node.js express

我正在尝试在我的服务器上创建一个zip文件的下载链接,我目前收到此错误:(注意,仍然只是在本地计算机上测试)

{ [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('Users/Jordan/Desktop/Websites/HappyCamel/', 'test123.zip', function(err) {

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

但现在我得到了

angular.min.js:114 ReferenceError: success is not defined
我的浏览器出现

错误,但我的节点控制台没有错误(我的“无错误”行正在打印)

1 个答案:

答案 0 :(得分:2)

你正在使用相对路径。当你这样做时:

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

它将在您当前文件的目录中查找Users/Jordan/Desktop/Websites/HappyCamel/。看起来你需要的是完整的路径,或更好的正确的相对路径 - 从错误看起来文件与你的代码一起定位,所以这应该做:

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