Use events to manage and observe Waterline models' lifecycle
This hook allows you to use event-driven programming when working with your Waterline models. It adds new events emitted from your Sails.js instance that you can subscribe to and perform actions when such an event is emitted.
The events are named separately for each model you have defined. they have the following structure:
model:event
Where model
is the name of your model in lowercase, i.e. user
, and event
is one of the following:
created
updated
destroyed
To put it all together, here are some examples of events emitted:
user:created
order:updated
// First, set up an event handler to listen for newly created users
// Assuming you have sails exposed as global property
sails.on('user:created', model => {
// model is the object which has been created in the database
// with all its properties etc.
// Perhaps send this user an email? We will use an imaginary
// email service in our app:
sails.services.email.send({ to: model.email, subject: 'Welcome' }, 'emails/welcome')
})
// And here is the code which will trigger the above event
sails.models.user.create({ email: 'user@example.com' })
.then(user => {
// ...
})
Just add this npm module into your Sails' package.json:
$ npm install --save sails-hook-events
This software is licensed under the BSD-3-Clause License. See the LICENSE file for more information.