Node.js http.ServerResponse.writableEnded Property

The httpServerResponse.writableEnded is an inbuilt application programming interface of class Server Response within http module which is used to check if response.end() has been called or not.

Syntax:

response.writableEnded

Parameters: This method does not accept any parameter.

Return Value: This method returns true if and only if response.end() has been called otherwise false.

Example 1: Filename: index.js

Javascript




// Node.js program to demonstrate the
// response.writableEnded APi
 
// Importing http module
const http = require('http');
 
// Setting up PORT
const PORT = process.env.PORT || 3000;
 
// Creating http Server
const httpServer = http.createServer(
    function (request, response) {
 
        // Checking if the response.end has
        // been called or not by using
        // writableEnded API
        const value = response.writableEnded;
 
 
        // Display result
        // by using end() api
        response.end("response.end() has been called : "
            + value, 'utf8', () => {
                console.log("displaying the result...");
 
                // Closing the server
                httpServer.close(() => {
                    console.log("server is closed")
                })
            });
    });
 
// Listening to http Server
httpServer.listen(PORT, () => {
    console.log("Server is running at port 3000...");
});


Run the index.js file using the below command:

node index.js

Console output:

Server is running at port 3000...
displaying the result...
displaying the result...
server is closed
server is closed

Browser Output: Paste the local host address http://localhost:3000/. In the search bar of the browser.

Output:

response.end() has been called : false

Example 2: Filename: index.js

Javascript




// Node.js program to demonstrate the
// response.writableEnded APi
 
// Importing http module
const http = require('http');
 
// Request and response handler
const http2Handlers = (request, response) => {
 
    // Checking if the response.end has
    // been called or not by using
    // writableEnded API
    const value = response.writableEnded;
 
    if (value)
        response.write(
            "<h1>Response.end() has been called<h1>")
    else
        response.write(
            "<h1>Response.end() has been not called<h1>")
 
    // Ending the response
    response.end()
};
 
// Creating http Server
const httpServer = http.createServer(
    http2Handlers).listen(3000, () => {
        console.log("Server is running at port 3000...");
    });


Run the index.js file using the below command:

node index.js

Console Output:

Server is running at port 3000...

Browser Output: Paste the localhost address http://localhost:3000/. In the search bar of the browser.

Output:

Response.end() has been not called

Reference: https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_response_writableended