Skip to content

Fast, unopinionated, minimalist web framework for node.

License

Notifications You must be signed in to change notification settings

martijndeh/express

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,366 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expat

Fork of express v4 to support async-await middleware. The idea is to have this around until express natively supports async-await. I think this will land in v5 (I can't guarantee because I'm not involved at all).

const expat = require('expat');
const app = expat();

app.get('/', async (request, response) {
  const account = await getAccount();

  response.json({
    account,
  });
});

app.listen(process.env.PORT || 3000);

Installation

$ npm install expat

Quick Explanation

If your middleware return truthy (.then isn't checked explicitly), promise handling kicks in. It wraps the return value in Promise.resolve and calls next(err) if the promise is rejected. If the promise is rejected but no error is specified, an unknown error is created (else next would be called as if the next route needs to continue).

The promise is not used for the flow control, so you still need to call next(), next('route'), or next(error) if you want to or have to.

Having promise support means await next() would make sense to do, just like in Koa, but that's not implemented (yet).

About

Fast, unopinionated, minimalist web framework for node.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.8%
  • Other 0.2%