The Event Class
Reshuffle apps are event driven, so the event object plays a key role in the reshuffle app architecture.
The event class server to pass information from the connector into your event handler code:
s3Connector.on({ type: 'ObjectAdded' }, async (event, app) => {
console.log(event)
})
By convention, event information passed from the controller to the handler resided in a event
parameter.
Here is how an HTTPConnector event handler accesses the http res
object:
connector.on({ method: 'GET', path: '/test' }, (event, app) => {
event.res.end('Hello World!')
})
Another common task for the event handler is to access the Reshuffle common services, through the app object:
Here is how an event handler accesses the common datastore from the event object:
connector.on({ expression: '*/5 * * * * *' }, async (event, app) => {
let store = app.getPersistentStore()
// single server setup
let times = (await store.get('scripts/times-said-hello')) || 0
console.log(`Hello World! ${times} times.`)
times++
await store.set('scripts/times-said-hello', times)
})
Here is and example of a handler accessing the logger:
connector.on({ expression: '*/5 * * * * *' }, (event, app) => {
logger.info('an info')
logger.warn('a warning')
logger.error('an error')
})