Express.js res.download() Function
The res.download() function transfers the file at path as an ‘attachment’. Typically, browsers will prompt the user to download.
Syntax:
res.download(path [, filename] [, options] [, fn])
Parameters: The filename is the name of the file which is to be downloaded as attachment and fn is a callback function.
Return Value: It does not return anything.
Installation of express module:
- You can visit the link to Install express module. You can install this package by using this command.
npm install express
- After installing the express module, you can check your express version in command prompt using the command.
npm version express
- After that, you can just create a folder and add a file for example, index.js. To run this file you need to run the following command.
node index.js
Example 1: Filename: 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); }); |
Place any file in root directory of the project which can be downloaded, like here we have used Hello.txt.
Steps to run the program:
- Make sure you have installed express module using the following command:
npm install express
- Run index.js file using below command:
node index.js
Output:
Server listening on PORT 3000
- Open your browser and go to http://localhost:3000/, now you can see the “Hello.txt” file being downloaded on your screen.
Example 2: Filename: 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); }); |
Run index.js file using below command:
node index.js
Open your browser and go to http://localhost:3000/, then you will see the following output on your console:
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 }
Reference: https://expressjs.com/en/4x/api.html#res.download