express根据地址下载文件
时间: 2023-09-12 22:13:23 浏览: 42
可以使用 Node.js 的 `fs` 模块和 `express` 框架的 `sendFile()` 方法来实现根据地址下载文件的功能。
首先,需要引入 `fs` 模块和 `express` 框架:
```javascript
const fs = require('fs');
const express = require('express');
const app = express();
```
然后,定义一个路由,接收地址参数,读取文件并将文件发送到客户端:
```javascript
app.get('/download/:filename', (req, res) => {
const filePath = `./downloads/${req.params.filename}`;
fs.readFile(filePath, (err, data) => {
if (err) {
console.error(err);
res.status(404).send('File not found');
} else {
res.sendFile(filePath);
}
});
});
```
在上面的例子中,假设下载的文件都存放在 `./downloads` 目录下。当客户端访问 `/download/filename` 路径时,会根据 `filename` 参数读取相应的文件,并使用 `res.sendFile()` 方法将文件发送到客户端。
需要注意的是,`res.sendFile()` 方法需要传入文件的完整路径,而不是仅仅是文件名。因此,在上面的例子中,需要将文件路径拼接后再传入到 `res.sendFile()` 方法中。
另外,如果读取文件时出现错误,比如文件不存在,可以通过设置响应状态码为 404 来告诉客户端文件不存在。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)