express-async-wrap
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/express-async-wrap package

1.0.0 • Public • Published

express-async-wrap

Allows the use of ES2016 async functions as Express route handlers.

Install

npm i express-async-wrap

Usage

To use in place of a normal route handler:

import wrap from 'express-async-wrap';
 
function makeResult(result) {
  return new Promise((resolve) => {
    setTimeout(() => resolve(result), 10);
  });
}
 
app.get('/', wrap(async function(req, res) {
  const results = [];
 
  for(let i = 0; i < 5; i++) {
    results.push(makeResult(`test${i}`));
  }
 
  res.send((await* results).join());
}));

To use as an error handler:

import wrap from 'express-async-wrap';
 
app.get('/', wrap(async function(req, res, next) {
  next(new Error('error'));
}));
app.use(wrap(async function(err, req, res, next) {
  res.status(500).send('error');
}));

Package Sidebar

Install

npm i express-async-wrap

Weekly Downloads

4,471

Version

1.0.0

License

MIT

Last publish

Collaborators

  • tesco