A hapi plugin integrating Waterline ORM.
Dogwater takes four options:
-
connections
(required) -
adapters
(required)- An object whose keys are adapter names (to be referenced in the
connections
option), and whose values are Waterline adapter modules
- An object whose keys are adapter names (to be referenced in the
-
models
(required)- Either a path to be
require
d that will return an array of unextended Waterline collections or, - An array of unextended Waterline collections
If a function is an element of this array, it will be called with the raw Waterline ORM object as an argument. It is expected to return an unextended Waterline collection. This allows one to reference Waterline in lifecycle callbacks.
- Either a path to be
-
data
- An object containing the configuration used by waterline-fixtures to load data fixtures, with the exception of the
collections
option
- An object containing the configuration used by waterline-fixtures to load data fixtures, with the exception of the
Dogwater then exposes the collections to Server.plugins.dogwater
via Plugin.expose and also to Request.model
.
The raw Waterline ORM object can be reteived from Server.methods.getWaterline()
(asynchronously) on all servers to which this plugin has been registered.
Example of usage in a hapi route handler:
server.route({
method: 'GET',
path: '/monkeys',
handler: function (request, reply) {
var Monkeys = request.model.monkeys;
Monkeys.find().then(function(monkeys) {
reply(monkeys);
});
}
});
or equivalently,
var Monkeys = server.plugins.dogwater.monkeys;
server.route({
method: 'GET',
path: '/monkeys',
handler: function (request, reply) {
Monkeys.find().then(function(monkeys) {
reply(monkeys);
});
}
});