当前位置: 首页 > 面试题库 >

res.download()在我的情况下不起作用

麹凯捷
2023-03-14
问题内容

我正在使用nodejs和expressjs框架从服务器下载文件’jsonFile.json’。

我正在使用以下代码

res.get('/download', function(req, res) {
         res.setHeader('Content-disposition', 'attachment; filename=jsonFile.json');
          res.setHeader('Content-Type', 'text/json');
          res.download(__dirname + 'jsonFile.json');
        }
      });

但这会导致对整个文件内容的响应。

我期望浏览器要我将文件保存在本地磁盘中。

如何将文件保存在本地磁盘中?


问题答案:

让Express设置正确的标头,然后执行以下操作:

res.get('/download', function(req, res) {
  res.download(__dirname + 'jsonFile.json', 'jsonFile.json');
});

(doc)

编辑: 由于您是/download通过AJAX调用进行请求的,因此您必须更改设置,因为大多数(全部?)浏览器在这种情况下不会显示下载对话框。

相反,您可以从前端代码创建一个新窗口来触发对话框:

window.open('/download?foo=bar&xxx=yyy');


 类似资料:
  • 我有一个h2作为唯一的项目在一个容器div。我在容器上使用position:relative和h2上使用position:absolute/bottom:0使它与容器底部对齐。但是,我无法使h2文本与容器div的右侧对齐。 HTML: CSS: 链接:http://www.distributionaccess.com/new/stempath/about.html 我在h2上尝试了display:

  • 我正在开发一个Android电视应用程序,我面临着一个与项目点击侦听器相关的奇怪问题:一切正常,但有时点击没有传播,很可能侦听器没有设置。 我将子类化,并用6个元素的行显示我的图像:这意味着网格的每一行实际上是适配器中的一行,即使从视觉上看,照片是同一个月。请看一下图片,以便更好地理解。 现在的问题是:当我启动应用程序并向下滚动时,上面图像中不可见的第一行(因此第四行,因为这里有3行被渲染)没有得

  • 输入是:1。硬币中一定数量货币的总重量,2。旧货币硬币的价值和相应重量。 目标是找到给定金额货币的最低可能货币价值。 我的方法是按货币的价值/重量比升序对硬币进行排序,然后贪婪地将第一枚硬币的重量尽可能多地匹配到总和中(跟踪它匹配的次数),然后匹配将第二枚硬币的重量尽可能多次地放入余数中,等等,对于所有硬币或直到余数为零(如果不是,情况是不可能的)。 法官说我的答案是错误的。你能给我一个关于算法错

  • 如果在公共方法中使用而不是ngondestroy,则无法取消订阅。 如果有用于轮询API的rxjs可观察间隔。onNgInit I赞同以下可观察到情况: 我在公共函数stopPolling()中做了什么错误的事情吗。如何在给定组件上仍处于活动状态的情况下取消订阅。 多谢了。

  • 我有HTML+CSS页面,其中有两个按钮: 我想让“顶级评论”默认可见。所以在本页的最后,我将简单的JavaScript 自动点击“顶部评论”按钮。 在我的开发环境中,一切都运行良好。但当将代码上传到启用CloudFlare的生产服务器时。JavaScript click()函数不起作用。 我已经为这个问题给CloudFlare的支持写了信,但两天后仍然没有任何回应。 对于我如何调试为什么这个Ja

  • 编辑:处理套接字输入的代码部分: