server-terminate
    TypeScript icon, indicating that this package has built-in type declarations

    1.5.0 • Public • Published

    server-terminate

    TypeScript definition

    Allow terminating an HTTP/HTTPS server in an orderly fashion:

    • Immediately closes keep-alive connections that are not being used by any HTTP request.
    • Waits for running HTTP requests to finish before closing their connections.
    • Closes connections with running HTTP requests after a given timeout.

    If you want to destroy all open connections without waiting for HTTP requests to finish, use the module server-destroy.

    Installation

    npm install server-terminate

    Usage

    var enableTerminate = require('server-terminate');
    var http = require('http');
     
    var server = http.createServer(function onRequest(req, res) {
      // Do your stuff here
    });
    enableTerminate(server).listen(PORT);
     
     
    // When you want to stop your server...
    server.terminate(function(err, terminatedByTimeout) {
      // You get here when all connections have been closed
    });

    Or if you are using TypeScript:

    import * as http from 'http';
    import enableTerminate from 'server-terminate';
     
    let server: http.Server = http.createServer(function onRequest(req: http.ServerRequest, res: http.ServerResponse) {
        // Do your stuff here
    });
    enableTerminate(server).listen(PORT);
     
    // When you want to stop your server...
    server.terminate((err, terminatedByTimeout) => {
        // You get here when all connections have been closed
    });

    You can set a timeout to force connection closing even when they are still being used by running HTTP requests. It is measured in milliseconds and defaults to 30000.

    enableTerminate(server, {timeout: 10000}).listen(PORT);

    If the server terminates by timeout the second parameter of the callback will be true.

    License

    MIT

    Install

    npm i server-terminate

    DownloadsWeekly Downloads

    45

    Version

    1.5.0

    License

    MIT

    Last publish

    Collaborators

    • joseantonio