Skip to content

Latest commit

 

History

History
111 lines (83 loc) · 1.91 KB

12-errors-and-globals.md

File metadata and controls

111 lines (83 loc) · 1.91 KB

Error Handling

Example

Global exception handler

Warning: Means application is in an undefined state! Fast fail - Use only to perform synchronous cleanup of allocated resources (e.g. file descriptors, handles, etc).

process.on('uncaughtException', error => {
  console.error(error);
});

Global Objects

available in all modules

console.log(__filename);
console.log(__dirname);
  • setTimeout(cb, ms)
  • clearTimeout(t)
  • setInterval(cb, ms)
  • clearInterval(t)

Modules

// export as object literal
module.exports = {
  foo: () => 'foo',
  bar: 'bar',
};
  • or -
// export as function (revealing module pattern)
module.exports = function(config) {
  return {
    foo: 'A',
    config: config,
  };
};
  • or -
// export as constructor function
module.exports = function(p1) {
  this.foo = () => 'foo';
  this.p1 = p1;
  this.bar = 'bar';
};
// import
const myModule = require('./my-module');

const myModuleAsFunction = require('./my-module')({ config: 'Foo' });

const MyModuleAsConstructor = require('./my-module');
const MyModuleAsConstructor = new MyModule();

Process

Process API

// Exit-Codes
```javascript
process.exit(0);

// Handle Signals

process.on('SIGINT', () => {
  console.log('Received SIGINT.  Press Control-D to exit.');
});

// Handle Command-Line Arguments

process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`);
});

// Environment Variables

process.env.VARIABLE_NAME;

Promise Error Handling

process.on('unhandledRejection', (reason, p) => {
  console.log('unhandledRejection - unhandled rejection is detected');
});
const myPromise = Promise.reject(new Error('An error'));