From 27065a05051ddf88aaa826fbd8685657349ade4b Mon Sep 17 00:00:00 2001 From: Raymond Feng Date: Tue, 20 Aug 2013 16:40:29 -0700 Subject: [PATCH] Update docs --- docs.json | 5 +- docs/datasource-connector.md | 247 ++++++++++++++++++++++++ docs/datasource-connector.png | Bin 0 -> 54273 bytes docs/{ldl.md => definition-language.md} | 0 4 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 docs/datasource-connector.md create mode 100644 docs/datasource-connector.png rename docs/{ldl.md => definition-language.md} (100%) diff --git a/docs.json b/docs.json index 67c66d6b..1830717e 100644 --- a/docs.json +++ b/docs.json @@ -10,7 +10,6 @@ "depth": 3 }, - "lib/model-builder.js", "lib/types.js", "lib/geo.js", @@ -36,7 +35,9 @@ "title": "Base class for SQL connectors", "depth": 3 }, - "lib/sql.js" + "lib/sql.js", + "docs/definition-language.md", + "docs/datasource-connector.md" ], "codeSectionDepth": 4 } diff --git a/docs/datasource-connector.md b/docs/datasource-connector.md new file mode 100644 index 00000000..f009b768 --- /dev/null +++ b/docs/datasource-connector.md @@ -0,0 +1,247 @@ +## LoopBack DataSource + +LoopBack is centered around models, which represent data and behaviors. The concept of `DataSource` is introduced to +encapsulate business logic to exchange data between models and various sources. Data sources are typically databases +that provide create, retrieve, update, and delete (CRUD) functions. LoopBack also generalize other backend services, +such as REST APIs, SOAP Web Services, and Storage Services, as data sources. + +Data sources are backed by connectors which implement the data exchange logic. Connectors are not used directly by +application code. The `DataSource` class provides APIs to configure a connector and exposes functions via `DataSource` +or model classes. + +![model-datasource-connector](datasource-connector.png "LoopBack Model, DataSource, and Connector") + +### Creating dataSource + +The `DataSource` constructor available from `loopback-datasource-juggler` module: + + var DataSource = require('loopback-datasource-juggler').DataSource; + +`DataSource` constructor accepts two arguments: +- connector: The name or instance of the connector module +- settings: An object of properties to configure the connector + + var dataSource = new DataSource({ + connector: require('loopback-connector-mongodb'), + host: 'localhost', + port: 27017, + database: 'mydb' + }); + +#### Connector +The connector argument passed the DataSource constructor can be one of the following: + +* The connector module from `require(connectorName)` +* The full name of the connector module, such as 'loopback-connector-oracle' +* The short name of the connector module, such as 'oracle', which will be converted to 'loopback-connector-' +* A local module under ./connectors/ folder + + + var ds1 = new DataSource('memory'); + var ds2 = new DataSource('loopback-connector-mongodb')); + var ds3 = new DataSource(require('loopback-connector-oracle')); + + +#### Settings +The settings argument configures the connector. Settings object format and defaults +depends on specific connector, but common fields are: + +* `host`: Database host +* `port`: Database port +* `username`: Username to connect to database +* `password`: Password to connect to database +* `database`: Database name +* `debug`: Turn on verbose mode to debug db queries and lifecycle + +For connector-specific settings refer to connector's readme file. + +### Using DataSource to create models + +`DataSource` extends from `ModelBuilder`, which is a factory for plain model classes that only have properties. + +DataSource is a factory for model classes. DataSource connected with specific database or other +backend system using connector. + +All model classes within single datasource shares same connector type and one database +connection. But it's possible to use more than one datasource to connect with +different databases. + +### Data Access Object + + +#### Connecting to database + +DataSource connecting to database automatically. Once connection established dataSource +object emit 'connected' event, and set `connected` flag to true, but it is not +necessary to wait for 'connected' event because all queries cached and executed +when dataSource emit 'connected' event. + +To disconnect from database server call `dataSource.disconnect` method. This call +forwarded to connector if connector have ability to connect/disconnect. + + +#### DB structure syncronization + +DataSource instance have two methods for updating db structure: automigrate and +autoupdate. + +The `automigrate` method drop table (if exists) and create it again, +`autoupdate` method generates ALTER TABLE query. Both method accepts callback +called when migration/update done. + +To check if any db changes required use `isActual` method. It accepts single +`callback` argument, which receive boolean value depending on db state: false if +db structure outdated, true when dataSource and db is in sync: + + dataSource.isActual(function(err, actual) { + if (!actual) { + dataSource.autoupdate(); + } + }); + +## LoopBack Connectors + +| Type | Package Name | +| --------- |:--------------------------------------------------------------------------------------:| +| MongoDB | [loopback-connector-mongodb](https://github.com/strongloop/loopback-connector-mongodb) | +| Oracle | [loopback-connector-oracle](https://github.com/strongloop/loopback-connector-oracle) | +| MySQL | [loopback-connector-mysql](https://github.com/strongloop/loopback-connector-mysql) | + +## Build your own connector + +LoopBack connectors provide access to backend systems including databases, REST APIs +and other services. Connectors are not used directly by application code. We create +a DataSource to interact with the connector. + +For example, + + var DataSource = require('loopback-datasource-juggler').DataSource; + var oracleConnector = require('loopback-connector-oracle'); + + var ds = new DataSource(oracleConnector, { + host : '166.78.158.45', + database : 'XE', + username : 'strongloop', + password : 'str0ng100pjs', + debug : true + }); + + + +## Generic connector implementations + +A connector module can implement the following methods to interact with the datasource. + + exports.initialize = function (dataSource, postInit) { + + var settings = dataSource.settings || {}; // The settings is passed in from the dataSource + + var connector = new MyConnector(settings); // Construct the connector instance + dataSource.connector = connector; // Attach connector to dataSource + connector.dataSource = dataSource; // Hold a reference to dataSource + + /** + * Connector instance can have an optional property named as DataAccessObject that provides + * static and prototype methods to be mixed into the model constructor. The property can be defined + * on the prototype. + */ + connector.DataAccessObject = function {}; + + /** + * Connector instance can have an optional function to be called to handle data model definitions. + * The function can be defined on the prototype too. + * @param model The name of the model + * @param properties An object for property definitions keyed by propery names + * @param settings An object for the model settings + */ + connector.define = function(model, properties, settings) { + ... + }; + + connector.connect(..., postInit); // Run some async code for initialization + // process.nextTick(postInit); + } + +Another way is to directly export the connection function which takes a settings object. + + module.exports = function(settings) { + ... + } + +## CRUD connector implmentations + +To support CRUD operations for a model class that is attached to the dataSource/connector, the connector needs to provide +the following functions: + + /** + * Create a new model instance + */ + CRUDConnector.prototype.create = function (model, data, callback) { + }; + + /** + * Save a model instance + */ + CRUDConnector.prototype.save = function (model, data, callback) { + }; + + /** + * Check if a model instance exists by id + */ + CRUDConnector.prototype.exists = function (model, id, callback) { + }; + + /** + * Find a model instance by id + */ + CRUDConnector.prototype.find = function find(model, id, callback) { + }; + + /** + * Update a model instance or create a new model instance if it doesn't exist + */ + CRUDConnector.prototype.updateOrCreate = function updateOrCreate(model, data, callback) { + }; + + /** + * Delete a model instance by id + */ + CRUDConnector.prototype.destroy = function destroy(model, id, callback) { + }; + + /** + * Query model instances by the filter + */ + CRUDConnector.prototype.all = function all(model, filter, callback) { + }; + + /** + * Delete all model instances + */ + CRUDConnector.prototype.destroyAll = function destroyAll(model, callback) { + }; + + /** + * Count the model instances by the where criteria + */ + CRUDConnector.prototype.count = function count(model, callback, where) { + }; + + /** + * Update the attributes for a model instance by id + */ + CRUDConnector.prototype.updateAttributes = function updateAttrs(model, id, data, callback) { + }; + +## Installation + + npm install loopback-datasource-juggler + +Also install the appropriated connector, for example for mongodb: + + npm install loopback-connector-mongodb + +check following list of available connectors + + + diff --git a/docs/datasource-connector.png b/docs/datasource-connector.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4f8a1b9c527c13e54071e42aaa7dba78ad2bd1 GIT binary patch literal 54273 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