hapi-aerospike
v0.1.0
Published
A simple Hapi Aerospike connection plugin.
Downloads
1
Readme
Hapi-MongoDB
This is a plugin to share a common MongoDB connection pool across the whole Hapi server.
Options can be a single object with the following keys or an array of the same kind if you need multiple connections :
- url: Optional. MongoDB connection string (eg.
mongodb://user:pass@localhost:27017
),- defaults to
mongodb://localhost:27017
- defaults to
- settings: Optional. Provide extra settings to the connection, see documentation.
Several objects are exposed by this plugin :
db
: connection object to the database, if an array was provided for the configuration, it will be an array of connections in the same orderlib
: mongodb library in case you need to use itObjectID
: mongodb ObjectID constructor in case you need to use it
Usage example :
var Hapi = require("hapi");
var Boom = require("boom");
var dbOpts = {
"url": "mongodb://localhost:27017/test",
"settings": {
"db": {
"native_parser": false
}
}
};
var server = new Hapi.Server();
server.register({
register: require('hapi-mongodb'),
options: dbOpts
}, function (err) {
if (err) {
console.error(err);
throw err;
}
});
server.route( {
"method" : "GET",
"path" : "/users/{id}",
"handler" : usersHandler
});
function usersHandler(request, reply) {
var db = request.server.plugins['hapi-mongodb'].db;
var ObjectID = request.server.plugins['hapi-mongodb'].ObjectID;
db.collection('users').findOne({ "_id" : new ObjectID(request.params.id) }, function(err, result) {
if (err) return reply(Boom.internal('Internal MongoDB error', err));
reply(result);
});
};
server.start(function() {
console.log("Server started at " + server.info.uri);
});
Huge thanks to @dypsilon for his help into the making of this plugin.