Javascript Sails.js下载文件到客户端

Javascript Sails.js下载文件到客户端,javascript,http,sails.js,Javascript,Http,Sails.js,在my Sails.js(v0.12)应用程序中,我们在myApp/downloads/uuid-filename.ext中生成一个文件。然而,对于如何将文件下载到客户端,我找不到可靠的答案 我的第一个想法是将uuid传递给用户,并允许他们从URL下载它。但是,我不确定如何从客户端访问文件,即使我知道完整的文件名 第二个想法是将内容流式传输给用户,但如果没有Express.js“res.download()”函数,这似乎是不可能的。我在sails.js文档中找到了“res.attachment”

在my Sails.js(v0.12)应用程序中,我们在myApp/downloads/uuid-filename.ext中生成一个文件。然而,对于如何将文件下载到客户端,我找不到可靠的答案

我的第一个想法是将uuid传递给用户,并允许他们从URL下载它。但是,我不确定如何从客户端访问文件,即使我知道完整的文件名

第二个想法是将内容流式传输给用户,但如果没有Express.js“res.download()”函数,这似乎是不可能的。我在sails.js文档中找到了“res.attachment”。然而,这个例子毫无帮助


如何将文件从API(Sails.js v0.12)下载到客户端(AngularJS)

您可以创建文件流并使用管道发送它

这是一个工作代码

    let filename = req.param("filename");
    let filepath = req.param("filepath");

    let file = require('path').resolve(sails.config.appPath+'//'+filepath)

    if(fs.existsSync(file))
    {
          res.setHeader('Content-disposition', 'attachment; filename=' + filename);

          let filestream = fs.createReadStream(file);
          filestream.pipe(res);

    }else{
        res.json({error : "File not Found"});
    }

这是用sailsJS(0.12)和AngularJS测试的。我能想到的最简单的方法是在
资产
文件夹中的下载文件夹中生成文件


如果您以
http:///downloads/.
,如果文件存在,它将自动下载,否则将抛出
404

我在资产中未找到下载文件夹,是否必须创建新文件夹是。您可以创建一个新的。