Package Exports
- nxus-storage
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nxus-storage) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
nxus-storage
A storage framework for Nxus applications using waterline.
Configuration
"config": {
"storage": {
"adapter": {
"default": "sails-mongo"
},
"connections": {
"default": {
"adapter": "default",
"url": "mongodb://...."
}
},
"modelsDir": "./src/models"
}
}Creating models
Inherit your models from BaseModel
import {BaseModel} from '@nxus/storage'
var User = BaseModel.extend({
identity: 'user',
attributes: {
name: 'string'
}
})Model events
The storage model emits events for create, update, and destroy, you can register a handler for all events:
app.get('storage').on('model.create', (identity, record) => {})
app.get('storage').on('model.update', (identity, record) => {})
app.get('storage').on('model.destroy', (identity, record) => {})Or just a specific model identity:
app.get('storage').on('model.create.user', (identity, record) => {})
app.get('storage').on('model.update.user', (identity, record) => {})
app.get('storage').on('model.destroy.user', (identity, record) => {})Lifecycle notes
load- Models should be registered during
load, e.g. var User = BaseModel.extend({ identity: 'user', ... }); app.get('storage').model(User)
- Models should be registered during
startupThe configured database is connected during
load.afterYou can query models from
startupand beyond, retrieve the model by the 'identity':app.get('storage').getModel('user').then((User) => { User.create(...); });
API
Storage
Storage provides a common interface for defining models. Uses the Waterline ORM.
getModel
Request a model based on its identity (name)
Parameters
Examples
app.get('storage').getModel('user')Returns Promise The model class(es)
model
Provide a model
Parameters
modelobject A Waterline-compatible model class
Examples
app.get('storage').model(...)HasModels
The HasModels class is a Base class for defining helper classes with Models.
modelNames
Override to define the model names to access
Examples
modelNames() {
return ['user']
}Returns (array|object) Model identities to add to this.models, or object of {identity: name}