express-wrap-async

    1.0.3 • Public • Published

    express-wrap-async

    Build Status codecov

    Usage

    npm i --save express-wrap-async
    
    import wrapAsync from 'express-wrap-async';

    Promise example

    function routePromise(req, res) {
      return new Promise((resolve) => {
        res.send({ ok: true });
        resolve();
      });
    }
     
    router.get('/promise', wrapAsync(routePromise));
     

    Babel example:

    const fakeWait = () => new Promise((resolve) => setTimeout(resolve, 100));
     
    async function asyncRoute(req, res) {
      await fakeWait();
      res.send({ ok: true });
    }
    router.get('/async', wrapAsync(asyncRoute));

    Multiple middlewares

    const middlewares = [
      async(req, res, next) => {
        await fakeWait();
        next();
      },
      (req, res, next) => {
        // non async middleware will also work
        next();
      },
      asyncRoute,
    ];
     
    router.get('/middlewares', wrapAsync(middlewares));

    Error handling

    async function errorRoute(req, res) {
      await fakeWait();
      throw new Error('unexpected error');
    }
    router.get('/standard', wrapAsync(errorRoute));
     
    app.use((err, req, res, next) => {
      res.status(500);
      res.json({
        error: err.message,
      });
    });
     

    MIT License

    Copyright (c) 2016 Łukasz Sentkiewicz

    Install

    npm i express-wrap-async

    DownloadsWeekly Downloads

    45

    Version

    1.0.3

    License

    MIT

    Last publish

    Collaborators

    • lsentkiewicz