raco-express
v2.0.0
Published
Express middleware wrapper using raco generator function
Downloads
5
Readme
raco-express
Express middleware wrapper for raco generator function.
npm install raco raco-express
This is a raco version of co-express,
which supports 'yielding' callback functions using next(err, val)
.
Calling next()
without argument, passes control to the next middleware stack.
app = wrap(express())
router = wrap(express.Router())
mw = wrap(mw*)
var express = require('express')
var wrap = require('raco-express')
var fs = require('fs')
// wrap express application
var app = wrap(express())
app.get('/foo', function * (req, res, next) {
// yield callback function using raco next(err, val)
req.data = yield fs.readFile('./data.json', 'utf8', next)
yield setTimeout(next, 10)
next() // calling next() passes to next middleware
}, function (req, res) {
res.send(req.data)
})
app.route('/bar').get(function * (req, res, next) {
req.send(yield fs.readFile('./bar.json', 'utf8', next))
})
// wrap express router
var errRouter = wrap(express.Router())
// 4 arguments for error handling middleware
errRouter.use(function * (err, req, res, next) {
res.status(500).send({
success: false,
message: err.message
})
})
app.use(errRouter)
// wrap express middleware
var mw = wrap(function * (req, res, next) {
// yield callback function using raco next(err, val)
req.data = yield fs.readFile('./data.json', 'utf8', next)
yield setTimeout(next, 10)
next() // calling next() passes to next middleware
})
...
License
MIT