@webgap/database-dao
v0.1.2
Published
Database data access object abstraction module.
Downloads
8
Maintainers
Readme
WebGAP Database DAO
README
This is the WebGAP DatabaseDAO module. Handles abstraction for multiple database systems.
Dependencies
Handles logging using @webgap/logger. Loads default configuration using @webgap/configuration. MongoDB Driver mongodb. JSON File System @webgap/jsonfs.
Requirements
A configuration file must exist (check @webgap/configuration documentation).
API
Installation
npm install @webgap/database-dao --save
Usage
// using jsondbfs driver
var options = {
databaseDriver: 'jsondbfs',
collectionName: 'UserCollection',
connectionString: '/path/to/store/json/files'
};
var UserDAO = new DAO(options);
UserDAO.getClient(function (err, client) {
client.insert({name: "teste", age: 33}, callback);
client.createIndex({name: "teste"}, callback);
client.find({name: "teste"}, callback);
client.findOne({name: "teste"}, callback);
client.findAndModify({name: "teste"}, {name: "teste", age: 34},callback);
client.update({name: "teste"}, {name: "teste1", age: 33},callback);
client.remove({name: "teste1", age: 33}, callback);
});
// or using mongodb driver
var options = {
databaseDriver: 'mongodb',
collectionName: 'UserCollection',
connectionString: 'mongodb://user:pass@host:port'
};
var UserDAO = new DAO(options);
UserDAO.getClient(function (err, client) {
client.insert({name: "teste", age: 33}, callback);
client.createIndex({name: "teste"}, callback);
client.find({name: "teste"}, callback);
client.findOne({name: "teste"}, callback);
client.findAndModify({name: "teste"}, {name: "teste", age: 34},callback);
client.update({name: "teste"}, {name: "teste1", age: 33},callback);
client.remove({name: "teste1", age: 33}, callback);
});
Options
The object 'options' should contain (at least) the following attributes:
var options = {
collectionName: 'name' //the name of the collection
};
Other options include:
var options = {
databaseDriver: 'jsondbfs', //one of mongodb or jsondbfs
connectionString: '/tmp' // the path to the database. if jsonfs is a filesystem location otherwise if is mongodb should be a mongo db url: mongodb://user:pass@host:port
};
If no 'options' is provided, the module will try to load the settings from @webgap/configuration module.
DB.DRIVER - Defaults to 'jsondbfs'
DB.CONNECTION_STRING - Defaults to '/tmp/'
License
Apache License, Version 2.0