You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express.js页面链接无法触发文件下载?问题排查与解决

问题原因及修复方案

核心问题

你的锚点链接href设置错误,导致浏览器请求了不存在的路径。当页面处于http://localhost:2020/时,href="localhost:2020/req"会被浏览器解析为相对路径,实际请求地址变成http://localhost:2020/localhost:2020/req——这个路径在你的Express服务器中没有对应路由,因此无法触发下载。

另外,res.download("./greeting.txt")的相对路径写法不可靠,Node.js的当前工作目录不一定等于脚本所在目录,推荐始终用__dirname拼接绝对路径。

修复步骤

1. 修正index.html中的锚点链接

将锚点的href改为相对路径(更适配不同部署环境):

<a href="/req">greeting.txt</a>

也可以使用完整绝对URL:

<a href="http://localhost:2020/req">greeting.txt</a>

2. 确认server.js中的文件路径正确

保留__dirname拼接的可靠写法,删除或注释相对路径选项:

app.get("/req", (req, res) => {
  res.download(__dirname + "/greeting.txt");
});

验证修复

重启Express服务器,访问http://localhost:2020/后点击页面链接,浏览器会正确请求/req路由,触发文件下载逻辑。

内容的提问来源于stack exchange,提问作者paneer_curry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:42:07