Express.js res.download()函数
res.download()函数将路径中的文件作为“附件”传输。通常,浏览器会提示用户下载。
句法:
res.download(path [, filename] [, options] [, fn])
参数: filename 是要作为附件下载的文件的名称,fn 是回调函数。
返回值:它不返回任何东西。
express模块的安装:
- 您可以访问安装 express 模块的链接。您可以使用此命令安装此软件包。
npm install express
- 安装 express 模块后,您可以使用命令在命令提示符下检查您的 express 版本。
npm version express
- 之后,您可以创建一个文件夹并添加一个文件,例如 index.js。要运行此文件,您需要运行以下命令。
node index.js
示例 1:文件名:index.js
var express = require('express');
var app = express();
var PORT = 3000;
app.get('/', function(req, res){
res.download('Hello.txt');
});
app.listen(PORT, function(err){
if (err) console.log(err);
console.log("Server listening on PORT", PORT);
});
将任何可以下载的文件放在项目的根目录中,比如这里我们使用了 Hello.txt 。
运行程序的步骤:
- 确保您已使用以下命令安装express模块:
npm install express
- 使用以下命令运行 index.js 文件:
node index.js
输出:
Server listening on PORT 3000
- 打开浏览器并转到http://localhost:3000/ ,现在您可以在屏幕上看到正在下载的“Hello.txt”文件。
示例 2:文件名:index.js
var express = require('express');
var app = express();
var PORT = 3000;
app.get('/', function(req, res){
res.download('Unknown_file.txt', function(error){
console.log("Error : ", error)
});
});
app.listen(PORT, function(err){
if (err) console.log(err);
console.log("Server listening on PORT", PORT);
});
使用以下命令运行 index.js 文件:
node index.js
打开浏览器并转到http://localhost:3000/ ,然后您将在控制台上看到以下输出:
Error : [Error: ENOENT: no such file or directory,
stat 'C:\\Users\\Unknown_file.txt'] {
errno: -4058,
code: 'ENOENT',
syscall: 'stat',
path: 'C:\\Users\\Unknown_file.txt',
expose: false,
statusCode: 404,
status: 404
}
参考: https://expressjs.com/en/4x/api.html#res.download