npm.io
2.0.0 • Published 1 year ago

graceful

Licence
MIT
Version
2.0.0
Deps
2
Size
33 kB
Vulns
0
Weekly
0
Stars
250

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

Keywords