The LoopBack app object is a Node
EventEmitter, and thus has
app.emit() and
app.on() methods.
In addition to the standard Node events, LoopBack applications and models emit other events.
By default, an application scaffolded with apic loopback emits a ‘started’ event when it starts up, after running boot scripts.
All models emit the following events:
By default, the basic LoopBack Model object has properties and methods "mixed in" from:
When you define relations between models, the RelationMixin object object also gets mixed in to the model object.
Emitted after a model has been successfully created, saved, or updated. Argument: inst, model instance, object.
For example:
MyModel.on('changed', function(inst) {
console.log('model with id %s has been changed', inst.id);
// => model with id 1 has been changed
});
Emitted after an individual model has been deleted. Argument: id, model ID (number).
For example:
MyModel.on('deleted', function(id) {
console.log('model with id %s has been deleted', id);
// => model with id 1 has been deleted
});
Emitted after an individual model has been deleted. Argument: where (optional), where filter, JSON object.
For example:
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
}
});
Emitted after a Model has been attached to an app.
Emitted after a Model has been attached to a DataSource.
Emitted when model property is set. Argument: inst, model instance, object.
For example:
MyModel.on('set', function(inst) {
console.log('model with id %s has been changed', inst.id);
// => model with id 1 has been changed
});
Arguments: data, an object.
PersistedModels also have a changed event that listens for model changes.
For example:
MyPersistedModel.on('changed', function(obj) {
console.log(obj) // => the changed model
});
The User model User.resetPassword() method emits the ’resetPasswordRequest’ event.