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

2.0.0 • Public • Published

graceful

NPM version Test coverage npm download Node.js Version

Graceful exit when uncaughtException emit, base on process.on('uncaughtException').

Why we should use this module

It's the best way to handle uncaughtException on current situations.

Install

npm install graceful

Usage

Please see express_with_cluster example.

This below code just for dev demo, don't use it on production env:

const express = require('express');
const { graceful } = require('graceful');

const app = express()
.use()
.use(function(req, res){
  if (Math.random() > 0.5) {
    foo.bar();
  }
  setTimeout(function() {
    if (Math.random() > 0.5) {
      throw new Error('Asynchronous error from timeout');
    } else {
      res.end('Hello from Connect!');
    }
  }, 100);
  setTimeout(function() {
    if (Math.random() > 0.5) {
      throw new Error('Mock second error');
    }
  }, 200);
})
.use(function(err, req, res, next) {
  res.end(err.message);
});

const server = app.listen(1984);

graceful({
  servers: [server],
  killTimeout: '30s',
});

If you have multi servers on one process, you just add them to server:

graceful({
  servers: [server1, server2, restapi],
  killTimeout: '15s',
});

ESM and TypeScript

import { graceful } from 'graceful';

Contributors

Contributors

Made with contributors-img.

License

MIT

/graceful/

    Package Sidebar

    Install

    npm i graceful

    Weekly Downloads

    21,535

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    34 kB

    Total Files

    11

    Last publish

    Collaborators

    • fengmk2