Express.js res.sendFile() Function
The res.sendFile() function basically transfers the file at the given path and it sets the Content-Type response HTTP header field based on the filename extension.
Syntax:
res.sendFile(path [, options] [, fn])
Parameter: The path parameter describes the path and the options parameter contains various properties like maxAge, root, etc and fn is the callback function.
Returns: It returns an Object.
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
javascript
var express = require( 'express' ); var app = express(); var path = require( 'path' ); var PORT = 3000; // Without middleware app.get( '/' , function (req, res){ var options = { root: path.join(__dirname) }; var fileName = 'Hello.txt' ; res.sendFile(fileName, options, function (err) { if (err) { next(err); } else { console.log( 'Sent:' , fileName); } }); }); app.listen(PORT, function (err){ if (err) console.log(err); console.log( "Server listening on PORT" , PORT); }); |
Now, create a .txt file like here we have created Hello.txt in the root directory of project with the following text:
Greetings from GeeksforGeeks
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
- Now open browser and go to http://localhost:3000/, now check your console and you will see the following output:
Server listening on PORT 3000 Sent: Hello.txt
- And on screen you will see the following output:
Greetings from GeeksforGeeks
Example 2: Filename: index.js
javascript
var express = require( 'express' ); const path = require( 'path' ); var app = express(); var PORT = 3000; // With middleware app.use( '/' , function (req, res, next){ var options = { root: path.join(__dirname) }; var fileName = 'GeeksforGeeks.txt' ; res.sendFile(fileName, options, function (err) { if (err) { next(err); } else { console.log( 'Sent:' , fileName); next(); } }); }); app.get( '/' , function (req, res){ console.log( "File Sent" ) res.send(); }); app.listen(PORT, function (err){ if (err) console.log(err); console.log( "Server listening on PORT" , PORT); }); |
Make sure you create a .txt file like here we have created GeeksforGeeks.txt in the root directory of project with the following text:
Welcome from GeeksforGeeks
Run index.js file using below command:
node index.js
Now open the browser and go to http://localhost:3000/, now check your console and you will see the following output:
Server listening on PORT 3000 Sent: GeeksforGeeks.txt File Sent
And you will see the following output on your browser screen:
Welcome from GeeksforGeeks
Reference: https://expressjs.com/en/5x/api.html#res.sendFile
Please Login to comment...