Skip to content
/ wga Public

Wrapper for generator and async/await to enable them use in Express or restify

License

Notifications You must be signed in to change notification settings

Pana/wga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wga

wga is a small JS function which can wrap a generator or async function to used as request handlers or middleware in Express. wga brought modern async write style to Express

Installing

npm install wga --save

Using with generator

var wga = require("wga")
var app = require("express")()

app.get("/books", wga(function*(req, res, next) {
  var books = yield Book.findAll()
  res.send(books)
}))

If any error been throwed out, they will be passed to next, which in Express's case calls the error handling middleware later on. If the generator succeeds, the next callback will not be called.

If you need to, like in middleware handlers, you can always call next yourself:

app.use(wga(function*(req, res, next) {
  var user = yield User.find(req.session.userId)
  if (user == null) return next(new Error("Unauthorized"))
  req.user = user
  next()
}))

Using with async function

app.use(wga(async function(req, res, next) {
  var user = await User.find(req.session.userId)
  if (user == null) return next(new Error("Unauthorized"))
  req.user = user
  next()
}))

app.get('/', wga(async function (req, res) {
  let result = await Promise.resolve('Hello world')
  res.send(`${result}\n`)
}))

License

MIT

About

Wrapper for generator and async/await to enable them use in Express or restify

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published