Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Express.js res.sendFile() Function

  • Difficulty Level : Basic
  • Last Updated : 03 Sep, 2021

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: 

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




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!