我怎样才能让用户使用节点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
中发送文件进行下载
我正在为我的学校创建一个网站,我想让学生能够下载文件 (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