我怎样才能让用户使用节点js下载文件

How can I allow users download files using node js

我正在为我的学校创建一个网站,我想让学生能够下载文件 (pdf) 使用节点js。所以基本上,他们会看到一堆不同的 link,当他们单击任何 link 时,下载就会开始。

你标记了这个 express 所以我假设你已经通过 npm 安装了 express。我还假设您需要的文件位于该文件夹的 downloads 目录中。 Express 实际上也有一个 res.download 模块,所以我在这个简单的例子中使用了它:

const express = require("express");
const path = require("path");
const app = express();
app.get("/downloads/:file", (req, res) => {
  res.download(
    path.join(__dirname, "downloads/" + req.params.file),
    (err) => {
      if (err) res.status(404).send("<h1>Not found: 404</h1>");
    }
  );
});
app.get("/", (req, res) => {
  res.send(`
  <ul>
    <li>
      <a href="/downloads/file1.pdf">
        file1.pdf
      </a>
    </li>
    <li>
      <a href="/downloads/file2.pdf">
        file2.pdf
      </a>
    </li>
    <li>
      <a href="/downloads/file3.pdf">
        file3.pdf
      </a>
    </li>
  </ul>`);
});
app.listen(3000);

因此,当用户转到 http://localhost:3000/downloads/file.pdf 时,Express 将在 ./downloads/file.pdf

中发送文件进行下载