azul-express v0.1.1
Azul.js Addon for Express
This addon simplifies use of Azul.js with Express. For a full overview of this module, read the Azul.js Express guide.
var azulExpress = require('azul-express')(db);
app.use(azulExpress.transaction);
app.post('/articles', azulExpress.route(function(req, res, next, Article, Author) {
Author.objects.findOrCreate({ name: req.body.author }).then(function(author) {
return author.createArticle({ title: req.body.title }).save();
})
.then(function(article) {
res.send({ article: article.json });
})
.catch(next);
}));API
azulExpress(db)
db
Type: Database
The database from which to create transactions. The result of this call is an
object that provides the below functions. It is also an alias for the
route function.
#route(function, options)
function
Type: Function
An Express route (or middleware) decorated with Azul.js parameters. For detailed examples, read the full guide. This wraps the given function and returns a new function compatible with Express.
options.transaction
Type: Boolean
Enable transaction support for this route regardless of whether the
transaction middleware is active.
options.wrap
Type: Function
Specify a wrapper function to pre-wrap the decorated route.
#transaction
Express middleware for enabling transactions.
#rollback
Express middleware for rolling back transactions. Also aliased as catch and
error. This is intended for advanced use and only needs to be enabled when
all of the following are true:
- The
transactionmiddleware is active - The route is not wrapped by
route - The route calls
nextwith an error argument
When in doubt, enable it. It is always safe to enable.
License
This project is distributed under the MIT license.