The App
object represents a Loopback application.
The App object extends Express and supports Express / Connect middleware. See Express documentation for details.
var loopback = require('loopback');
var app = loopback();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
Register a connector.
When a new data-source is being added via app.dataSource
, the connector
name is looked up in the registered connectors first.
Connectors are required to be explicitly registered only for applications using browserify, because browserify does not support dynamic require, which is used by LoopBack to automatically load the connector module.
Name | Type | Description |
---|---|---|
name |
String
|
Name of the connector, e.g. 'mysql'. |
connector |
Object
|
Connector object as returned by |
Define a DataSource.
Name | Type | Description |
---|---|---|
name |
String
|
The data source name |
config |
Object
|
The data source config |
Enable app wide authentication.
Listen for connections and update the configured port.
When there are no parameters or there is only one callback parameter,
the server will listen on app.get('host')
and app.get('port')
.
// listen on host/port configured in app config
app.listen();
Otherwise all arguments are forwarded to http.Server.listen
.
// listen on the specified port and all hosts, ignore app config
app.listen(80);
The function also installs a listening
callback that calls
app.set('port')
with the value returned by server.address().port
.
This way the port param contains always the real port number, even when
listen was called with port number 0.
Name | Type | Description |
---|---|---|
cb |
Function
|
If specified, the callback is added as a listener for the server's "listening" event. |
Name | Type | Description |
---|---|---|
result |
http.Server
|
A node |
Attach a model to the app. The Model
will be available on the
app.models
object.
// Attach an existing model
var User = loopback.User;
app.model(User);
// Attach an existing model, alter some aspects of the model
var User = loopback.User;
app.model(User, { dataSource: 'db' });
// LoopBack 1.x way: create and attach a new model (deprecated)
var Widget = app.model('Widget', {
dataSource: 'db',
properties: {
name: 'string'
}
});
Name | Type | Description |
---|---|---|
Model |
Object or String
|
The model to attach. |
config |
Object
|
The model's configuration. |
Name | Type | Description |
---|---|---|
dataSource |
String or DataSource
|
The |
[public] |
Boolean
|
whether the model should be exposed via REST API |
[relations] |
Object
|
relations to add/update |
Name | Type | Description |
---|---|---|
result |
ModelConstructor
|
the model class |
Get the models exported by the app. Returns only models defined using app.model()
There are two ways to access models:
app.models()
to get a list of all models.var models = app.models();
models.forEach(function (Model) {
console.log(Model.modelName); // color
});
**2. Use app.model
to access a model by name.
app.model
has properties for all defined models.
The following example illustrates accessing the Product
and CustomerReceipt
models
using the models
object.
var loopback = require('loopback');
var app = loopback();
app.boot({
dataSources: {
db: {connector: 'memory'}
}
});
app.model('product', {dataSource: 'db'});
app.model('customer-receipt', {dataSource: 'db'});
// available based on the given name
var Product = app.models.Product;
// also available as camelCase
var product = app.models.product;
// multi-word models are avaiable as pascal cased
var CustomerReceipt = app.models.CustomerReceipt;
// also available as camelCase
var customerReceipt = app.models.customerReceipt;
Name | Type | Description |
---|---|---|
result |
Array
|
Array of model classes. |
Get all remote objects.
Name | Type | Description |
---|---|---|
result |
Object
|
Lazily load a set of remote objects.
NOTE: Calling app.remotes()
more than once returns only a single set of remote objects.
Name | Type | Description |
---|---|---|
result |
RemoteObjects
|
Main entry for LoopBack core module. It provides static properties and
methods to create models and data sources. The module itself is a function
that creates loopback app
. For example,
var loopback = require('loopback');
var app = loopback();
Add a remote method to a model.
Name | Type | Description |
---|---|---|
fn |
Function
|
|
options |
Object
|
(optional) |
Create a template helper.
var render = loopback.template('foo.ejs');
var html = render({foo: 'bar'});
Name | Type | Description |
---|---|---|
path |
String
|
Path to the template file. |
Name | Type | Description |
---|---|---|
result |
Function
|
True if running in a browser environment; false otherwise.
True if running in a server environment; false otherwise.
Create a named vanilla JavaScript class constructor with an attached set of properties and options.
This function comes with two variants:
loopback.createModel(name, properties, options)
loopback.createModel(config)
In the second variant, the parameters name
, properties
and options
are provided in the config object. Any additional config entries are
interpreted as options
, i.e. the following two configs are identical:
{ name: 'Customer', base: 'User' }
{ name: 'Customer', options: { base: 'User' } }
Example
Create an Author
model using the three-parameter variant:
loopback.createModel(
'Author',
{
firstName: 'string',
lastName: 'string
},
{
relations: {
books: {
model: 'Book',
type: 'hasAndBelongsToMany'
}
}
}
);
Create the same model using a config object:
loopback.createModel({
name: 'Author',
properties: {
firstName: 'string',
lastName: 'string
},
relations: {
books: {
model: 'Book',
type: 'hasAndBelongsToMany'
}
}
});
Name | Type | Description |
---|---|---|
name |
String
|
Unique name. |
properties |
Object
|
|
options |
Object
|
(optional) |
Alter an existing Model class.
Name | Type | Description |
---|---|---|
ModelCtor |
Model
|
The model constructor to alter. |
config |
Object
|
Additional configuration to apply |
Name | Type | Description |
---|---|---|
dataSource |
DataSource
|
Attach the model to a dataSource. |
[relations] |
Object
|
Model relations to add/update. |
Look up a model class by name from all models created by
loopback.createModel()
Name | Type | Description |
---|---|---|
modelName |
String
|
The model name |
Name | Type | Description |
---|---|---|
result |
Model
|
The model class |
Look up a model class by name from all models created by
loopback.createModel()
. Throw an error when no such model exists.
Name | Type | Description |
---|---|---|
modelName |
String
|
The model name |
Name | Type | Description |
---|---|---|
result |
Model
|
The model class |
Look up a model class by the base model class. The method can be used by LoopBack to find configured models in models.json over the base model.
Name | Type | Description |
---|---|---|
modelType |
Model
|
The base model class |
Name | Type | Description |
---|---|---|
result |
Model
|
The subclass if found or the base class |
Create a data source with passing the provided options to the connector.
Name | Type | Description |
---|---|---|
name |
String
|
Optional name. |
options |
Object
|
Data Source options |
Name | Type | Description |
---|---|---|
connector |
Object
|
LoopBack connector. |
[*] |
|
Other connector properties. See the relevant connector documentation. |
Get an in-memory data source. Use one if it already exists.
Name | Type | Description |
---|---|---|
[name] |
String
|
The name of the data source. If not provided, the |
Set the default dataSource
for a given type
.
Name | Type | Description |
---|---|---|
type |
String
|
The datasource type |
dataSource |
Object or DataSource
|
The data source settings or instance |
Name | Type | Description |
---|---|---|
result |
DataSource
|
The data source instance |
Get the default dataSource
for a given type
.
Name | Type | Description |
---|---|---|
type |
String
|
The datasource type |
Name | Type | Description |
---|---|---|
result |
DataSource
|
The data source instance |
Attach any model that does not have a dataSource to the default dataSource for the type the Model requests
The base class for all models.
Inheriting from Model
var properties = {...};
var options = {...};
var MyModel = loopback.Model.extend('MyModel', properties, options);
Options
trackChanges
- If true, changes to the model will be tracked. Required
for replication.Events
changed
Emitted after a model has been successfully created, saved, or updated.
MyModel.on('changed', function(inst) {
console.log('model with id %s has been changed', inst.id);
// => model with id 1 has been changed
});
deleted
Emitted after an individual model has been deleted.
MyModel.on('deleted', function(inst) {
console.log('model with id %s has been deleted', inst.id);
// => model with id 1 has been deleted
});
deletedAll
Emitted after an individual model has been deleted.
MyModel.on('deletedAll', function(where) {
if(where) {
console.log('all models where', where, 'have been deleted');
// => all models where
// => {price: {gt: 100}}
// => have been deleted
}
});
attached
Emitted after a Model
has been attached to an app
.
dataSourceAttached
Emitted after a Model
has been attached to a DataSource
.
Name | Type | Description |
---|---|---|
data |
Object
|
Name | Type | Description |
---|---|---|
modelName |
String
|
The name of the model |
dataSource |
DataSource
|
Check if the given access token can invoke the method
Name | Type | Description |
---|---|---|
token |
AccessToken
|
The access token |
modelId |
|
The model ID. |
sharedMethod |
SharedMethod
|
The method in question |
callback |
Function
|
The callback function |
Name | Type | Description |
---|---|---|
err |
String or Error
|
The error object |
allowed |
Boolean
|
True if the request is allowed; false otherwise. |
Get the Application
the Model is attached to.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
app |
Application
|
Enable remote invocation for the method with the given name.
Name | Type | Description |
---|---|---|
name |
String
|
The name of the method. ```js // static method example (eg. Model.myMethod()) Model.remoteMethod('myMethod'); |
options |
Object
|
The remoting options. See loopback.remoteMethod() for details. |
Extends Model with basic query and CRUD support.
Change Event
Listen for model changes using the change
event.
MyPersistedModel.on('changed', function(obj) {
console.log(obj) // => the changed model
});
Name | Type | Description |
---|---|---|
data |
Object
|
|
data.id |
Number
|
The default id property |
Apply an update list.
Note: this is not atomic
Name | Type | Description |
---|---|---|
updates |
Array
|
An updates list (usually from Model.createUpdates()) |
callback |
Function
|
Get the changes to a model since a given checkpoint. Provide a filter object to reduce the number of results returned.
Name | Type | Description |
---|---|---|
since |
Number
|
Only return changes since this checkpoint |
filter |
Object
|
Only include changes that match this filter (same as |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
changes |
Array
|
An array of |
Create a checkpoint.
Name | Type | Description |
---|---|---|
callback |
Function
|
Return count of matched records
Name | Type | Description |
---|---|---|
where |
Object
|
search conditions (optional) |
cb |
Function
|
callback, called with (err, count) |
Create new instance of Model class, saved in database
Name | Type | Description |
---|---|---|
data |
|
[optional] |
callback(err, |
|
obj) callback called with arguments:
|
Create an update list (for Model.bulkUpdate()
) from a delta list
(result of Change.diff()
).
Name | Type | Description |
---|---|---|
deltas |
Array
|
|
callback |
Function
|
Get the current checkpoint id.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
currentCheckpointId |
Number
|
Get a set of deltas and conflicts since the given checkpoint.
See Change.diff()
for details.
Name | Type | Description |
---|---|---|
since |
Number
|
Find deltas since this checkpoint |
remoteChanges |
Array
|
An array of change objects |
callback |
Function
|
Enable the tracking of changes made to the model. Usually for replication.
Check whether a model instance exists in database
Name | Type | Description |
---|---|---|
id |
id
|
identifier of object (primary key value) |
cb |
Function
|
callbacl called with (err, exists: Bool) |
Find all instances of Model, matched by query
make sure you have marked as index: true
fields for filter or sort
Name | Type | Description |
---|---|---|
params |
Object
|
(optional)
|
callback |
Function
|
(required) called with arguments:
|
Find object by id
Name | Type | Description |
---|---|---|
id |
|
primary key value |
cb |
Function
|
callback called with (err, instance) |
Find one record, same as all
, limited by 1 and return object, not collection
Name | Type | Description |
---|---|---|
params |
Object
|
search conditions: {where: {test: 'me'}} |
cb |
Function
|
callback called with (err, instance) |
Find one record, same as find
, limited by 1 and return object, not collection,
if not found, create using data provided as second argument
Name | Type | Description |
---|---|---|
query |
Object
|
search conditions: {where: {test: 'me'}}. |
data |
Object
|
object to create. |
cb |
Function
|
callback called with (err, instance) |
Get the Change
model.
Get the id property name of the constructor.
Name | Type | Description |
---|---|---|
result |
String
|
The |
Get the source identifier for this model / dataSource.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
sourceId |
String
|
Handle a change error. Override this method in a subclassing model to customize change error handling.
Name | Type | Description |
---|---|---|
err |
Error
|
Tell loopback that a change to the model with the given id has occurred.
Name | Type | Description |
---|---|---|
id |
|
The id of the model that has changed |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
Destroy all matching records
Name | Type | Description |
---|---|---|
[where] |
Object
|
An object that defines the criteria |
[cb] |
Function
|
callback called with (err) |
Destroy a record by id
Name | Type | Description |
---|---|---|
id |
|
The id value |
cb |
Function
|
callback called with (err) |
Replicate changes since the given checkpoint to the given target model.
Name | Type | Description |
---|---|---|
[since] |
Number
|
Since this checkpoint |
targetModel |
Model
|
Target this model class |
[options] |
Object
|
|
[options.filter] |
Object
|
Replicate models that match this filter |
[callback] |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
conflicts |
Array.<Conflict>
|
A list of changes that could not be replicated due to conflicts. |
Update multiple instances that match the where clause
Example:
Employee.update({managerId: 'x001'}, {managerId: 'x002'}, function(err) {
...
});
Name | Type | Description |
---|---|---|
[where] |
Object
|
Search conditions (optional) |
data |
Object
|
Changes to be made |
cb |
Function
|
Callback, called with (err, count) |
Update or insert a model instance
Name | Type | Description |
---|---|---|
data |
Object
|
The model instance data |
[callback] |
Function
|
The callback function |
Get the id
value for the PersistedModel
.
Name | Type | Description |
---|---|---|
result |
|
The |
Get the id property name of the constructor.
Name | Type | Description |
---|---|---|
result |
String
|
The |
Determine if the data model is new.
Name | Type | Description |
---|---|---|
result |
Boolean
|
Reload object from persistence
Name | Type | Description |
---|---|---|
callback |
Function
|
called with (err, instance) arguments |
Save instance. When instance haven't id, create method called instead. Triggers: validate, save, update | create
Name | Type | Description |
---|---|---|
options |
|
{validate: true, throws: false} [optional] |
callback(err, |
|
obj) |
Set the correct id
property for the PersistedModel
. If a Connector
defines
a setId
method it will be used. Otherwise the default lookup is used. You
should override this method to handle complex ids.
Name | Type | Description |
---|---|---|
val |
|
The |
Update single attribute
equals to `updateAttributes({name: value}, cb)
Name | Type | Description |
---|---|---|
name |
String
|
name of property |
value |
Mixed
|
value of property |
callback |
Function
|
callback called with (err, instance) |
Update set of attributes
this method performs validation before updating
Name | Type | Description |
---|---|---|
data |
Object
|
data to update |
callback |
Function
|
callback called with (err, instance) |
Expose models over REST.
For example:
app.use(loopback.rest());
For more information, see Exposing models over a REST API.
Return HTTP response with basic application status information: date the application was started and uptime, in JSON format. For example:
{
"started": "2014-06-05T00:26:49.750Z",
"uptime": 9.394
}
Check for an access token in cookies, headers, and query string parameters. This function always checks for the following:
access_token
(params only)X-Access-Token
(headers only)authorization
(headers and cookies)It checks for these values in cookies, headers, and query string parameters in addition to the items specified in the options parameter.
NOTE: This function only checks for signed cookies.
The following example illustrates how to check for an accessToken
in a custom cookie, query string parameter
and header called foo-auth
.
app.use(loopback.token({
cookies: ['foo-auth'],
headers: ['foo-auth', 'X-Foo-Auth'],
params: ['foo-auth', 'foo_auth']
}));
Name | Type | Description |
---|---|---|
[options] |
Object
|
Each option array is used to add additional keys to find an |
Name | Type | Description |
---|---|---|
[cookies] |
Array
|
Array of cookie names. |
[headers] |
Array
|
Array of header names. |
[params] |
Array
|
Array of param names. |
[model] |
Array
|
An AccessToken object to use. |
Convert any request not handled so far to a 404 error to be handled by error-handling middleware.
Token based authentication and access control.
Name | Type | Description |
---|---|---|
id |
|
{String} Generated token ID |
ttl |
|
{Number} Time to live |
created |
|
{Date} When the token was created Default ACLs
|
Create a cryptographically random access token id.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
token |
String
|
Find a token for the given ServerRequest
.
Name | Type | Description |
---|---|---|
req |
ServerRequest
|
|
[options] |
Object
|
Options for finding the token |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
token |
AccessToken
|
Validate the token.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
isValid |
Boolean
|
Name of the access type - READ/WRITE/EXEC
Name | Type | Description |
---|---|---|
accessType |
|
{String} Name of the access type - READ/WRITE/EXEC |
ALARM - Generate an alarm, in a system dependent way, the access specified in the permissions component of the ACL entry. ALLOW - Explicitly grants access to the resource. AUDIT - Log, in a system dependent way, the access specified in the permissions component of the ACL entry. DENY - Explicitly denies access to the resource.
Type of the principal - Application/User/Role
Id of the principal - such as appId, userId or roleId
A Model for access control meta data.
Check if the request has the permission to access.
Name | Type | Description |
---|---|---|
context |
Object
|
See below. |
callback |
Function
|
Callback function |
Name | Type | Description |
---|---|---|
principals |
Array.<Object>
|
An array of principals. |
model |
String or Model
|
The model name or model class. |
id |
|
The model instance ID. |
property |
String
|
The property/method/relation name. |
accessType |
String
|
The access type: READE, WRITE, or EXEC. |
Check if the given access token can invoke the method
Name | Type | Description |
---|---|---|
token |
AccessToken
|
The access token |
model |
String
|
The model name |
modelId |
|
The model id |
method |
String
|
The method name |
callback |
Function
|
Callback function |
Name | Type | Description |
---|---|---|
err |
String or Error
|
The error object |
allowed |
Boolean
|
is the request allowed |
Check if the given principal is allowed to access the model/property
Name | Type | Description |
---|---|---|
principalType |
String
|
The principal type. |
principalId |
String
|
The principal ID. |
model |
String
|
The model name. |
property |
String
|
The property/method/relation name. |
accessType |
String
|
The access type. |
callback |
Function
|
Callback function. |
Name | Type | Description |
---|---|---|
err |
String or Error
|
The error object |
result |
AccessRequest
|
The access permission |
Calculate the matching score for the given rule and request
Name | Type | Description |
---|---|---|
rule |
ACL
|
The ACL entry |
req |
AccessRequest
|
The request |
Name | Type | Description |
---|---|---|
result |
Number
|
Get matching score for the given AccessRequest
.
Name | Type | Description |
---|---|---|
req |
AccessRequest
|
The request |
Name | Type | Description |
---|---|---|
result |
Number
|
score |
Resource owner grants/delegates permissions to client applications
For a protected resource, does the client application have the authorization from the resource owner (user or system)?
Scope has many resource access entries
Check if the given scope is allowed to access the model/property
Name | Type | Description |
---|---|---|
scope |
String
|
The scope name |
model |
String
|
The model name |
property |
String
|
The property/method/relation name |
accessType |
String
|
The access type |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
String or Error
|
The error object |
result |
AccessRequest
|
The access permission |
production or development mode. It denotes what default APNS servers to be used to send notifications
Manage client applications and organize their users.
Authenticate the application id and key.
matched
parameter is one of:
Name | Type | Description |
---|---|---|
appId |
Any
|
|
key |
String
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
matched |
String
|
The matching key |
Register a new application
Name | Type | Description |
---|---|---|
owner |
String
|
Owner's user ID. |
name |
String
|
Name of the application |
options |
Object
|
Other options |
callback |
Function
|
Callback function |
Reset keys for a given application by the appId
Name | Type | Description |
---|---|---|
appId |
Any
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
Reset keys for the application instance
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
The Email Model.
Properties
to
- String (required)from
- String (required)subject
- String (required)text
- Stringhtml
- StringSend an email with the given options
.
Example Options:
{
from: "Fred Foo <foo@blurdybloop.com>", // sender address
to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
subject: "Hello", // Subject line
text: "Hello world", // plaintext body
html: "<b>Hello world</b>" // html body
}
See https://github.com/andris9/Nodemailer for other supported options.
Name | Type | Description |
---|---|---|
options |
Object
|
See below |
callback |
Function
|
Called after the e-mail is sent or the sending failed |
Name | Type | Description |
---|---|---|
from |
String
|
Senders's email address |
to |
String
|
List of one or more recipient email addresses (comma-delimited) |
subject |
String
|
Subject line |
text |
String
|
Body text |
html |
String
|
Body HTML (optional) |
The Role Model
List roles for a given principal
Name | Type | Description |
---|---|---|
context |
Object
|
The security context |
callback |
Function
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
|
|
An |
Array.<String>
|
array of role ids |
Check if the user id is authenticated
Name | Type | Description |
---|---|---|
context |
Object
|
The security context |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
isAuthenticated |
Boolean
|
Check if a given principal is in the role
Name | Type | Description |
---|---|---|
role |
String
|
The role name |
context |
Object
|
The context object |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
isInRole |
Boolean
|
Check if a given userId is the owner the model instance
Name | Type | Description |
---|---|---|
modelClass |
Function
|
The model class |
modelId |
|
The model id |
{*) userId The user id |
|
|
callback |
Function
|
Add custom handler for roles
Name | Type | Description |
---|---|---|
role |
|
|
resolver |
|
The resolver function decides if a principal is in the role dynamically function(role, context, callback) |
The RoleMapping
model extends from the built in loopback.Model
type.
Get the application principal
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
application |
Application
|
Get the child role principal
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
childUser |
User
|
Get the user principal
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
user |
User
|
Extends from the built in loopback.Model
type.
Default User
ACLs.
*
create
deleteById
login
logout
findById
updateAttributes
Confirm the user's identity.
Name | Type | Description |
---|---|---|
userId |
Any
|
|
token |
String
|
The validation token |
redirect |
String
|
URL to redirect the user to once confirmed |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
Login a user by with the given credentials
.
User.login({username: 'foo', password: 'bar'}, function (err, token) {
console.log(token.id);
});
Name | Type | Description |
---|---|---|
credentials |
Object
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
token |
AccessToken
|
Logout a user with the given accessToken id.
User.logout('asd0a9f8dsj9s0s3223mk', function (err) {
console.log(err || 'Logged out');
});
Name | Type | Description |
---|---|---|
accessTokenID |
String
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
Create a short lived acess token for temporary login. Allows users to change passwords if forgotten.
Name | Type | Description |
---|---|---|
options |
Object
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
String
|
The user's email address |
Name | Type | Description |
---|---|---|
err |
Error
|
Create access token for the logged in user. This method can be overridden to customize how access tokens are generated
Name | Type | Description |
---|---|---|
[Number} ttl The requested ttl |
|
|
err |
String or Error
|
The error string or object |
token |
AccessToken
|
The generated access token object |
Compare the given password
with the users hashed password.
Name | Type | Description |
---|---|---|
password |
String
|
The plain text password |
Name | Type | Description |
---|---|---|
result |
Boolean
|
Verify a user's identity by sending them a confirmation email.
var options = {
type: 'email',
to: user.email,
template: 'verify.ejs',
redirect: '/'
};
user.verify(options, next);
Name | Type | Description |
---|---|---|
options |
Object
|
Change list entry.
Name | Type | Description |
---|---|---|
id |
|
{String} Hash of the modelName and id |
rev |
|
{String} the current model revision |
prev |
|
{String} the previous model revision |
checkpoint |
|
{Number} the current checkpoint at time of the change |
modelName |
|
{String} the model name |
modelId |
|
{String} the model id |
Are both changes deletes?
Name | Type | Description |
---|---|---|
a |
Change
|
|
b |
Change
|
When two changes conflict a conflict is created.
**Note: call conflict.fetch()
to get the target
and source
models.
Name | Type | Description |
---|---|---|
modelId |
|
|
SourceModel |
PersistedModel
|
|
TargetModel |
PersistedModel
|
Name | Type | Description |
---|---|---|
source |
ModelClass
|
The source model instance |
target |
ModelClass
|
The target model instance |
Determine the differences for a given model since a given checkpoint.
The callback will contain an error or result
.
result
{
deltas: Array,
conflicts: Array
}
deltas
An array of changes that differ from remoteChanges
.
conflicts
An array of changes that conflict with remoteChanges
.
Name | Type | Description |
---|---|---|
modelName |
String
|
|
since |
Number
|
Compare changes after this checkpoint |
remoteChanges |
Array.<Change>
|
A set of changes to compare |
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
result |
Object
|
See above. |
Find or create a change for the given model.
Name | Type | Description |
---|---|---|
modelName |
String
|
|
modelId |
String
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
change |
Change
|
Get the checkpoint model.
Create a hash of the given string
with the options.hashAlgorithm
.
Default: sha1
Name | Type | Description |
---|---|---|
str |
String
|
The string to be hashed |
Get an identifier for a given model.
Name | Type | Description |
---|---|---|
modelName |
String
|
|
modelId |
String
|
Correct all change list entries.
Name | Type | Description |
---|---|---|
callback |
Function
|
Track the recent change of the given modelIds.
Name | Type | Description |
---|---|---|
modelName |
String
|
|
modelIds |
Array
|
|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
changes |
Array
|
Changes that were tracked |
Get the revision string for the given object
Name | Type | Description |
---|---|---|
inst |
Object
|
The data to get the revision string for |
Get the conflicting changes.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
sourceChange |
Change
|
|
targetChange |
Change
|
Does this change conflict with the given change.
Name | Type | Description |
---|---|---|
change |
Change
|
Get a change's current revision based on current data.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
rev |
String
|
The current revision |
Compare two changes.
Name | Type | Description |
---|---|---|
change |
Change
|
Get the Model
class for change.modelName
.
Determine if the change is based on the given change.
Name | Type | Description |
---|---|---|
change |
Change
|
Fetch the conflicting models.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
Error
|
||
source |
PersistedModel
|
|
target |
PersistedModel
|
Update (or create) the change with the current revision.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
change |
Change
|
Resolve the conflict.
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
Get a change's type. Returns one of:
Change.UPDATE
Change.CREATE
Change.DELETE
Change.UNKNOWN
Determine the conflict type.
// possible results are
Change.UPDATE // => source and target models were updated
Change.DELETE // => the source and or target model was deleted
Change.UNKNOWN // => the conflict type is uknown or due to an error
Name | Type | Description |
---|---|---|
callback |
Function
|
Name | Type | Description |
---|---|---|
err |
Error
|
|
type |
String
|
The conflict type. |