Как зарегистрировать hapi cron с последней версией hapi.js - PullRequest
0 голосов
/ 01 октября 2019

Мой сервер зарегистрирован на hapijs.

Вот мой index.js

composer((err, server) => {
  if (err) throw err
  server.initialize((errInit) => {
    if (err) throw errInit
    const register = (hapiRaven, options, next) => {
      return next()
    }
    register.attributes = {
      name: 'hapi-raven',
      version: '1.0.1',
      options: { }
    }
    server.register([ register ])
    server.start(() => {
      // server starts
    })    
  })
})

Мне нужно использовать hapi-cron и мне нужно вызватьAPI с ним на каждую минуту. Поэтому мне нужно знать, где я могу использовать опцию регистрации ниже в приведенном выше коде, который работает в 16-й версии хапи.

{
      register: require('hapi-cron'),
      options: {
        jobs: [{
          name: 'Workout Every minute',
          time: '* * * * *',
          timezone: 'America/Los_Angeles',
          request: {
            method: 'GET',
            url: `/workout-reminder?type=everyMinute`,
          },
          callback: (res) => {
            console.info('Workout Every minute')
          }
        }]
      }  
    }

1 Ответ

0 голосов
/ 09 октября 2019

server.register() принимает массив плагинов. Вы можете зарегистрировать плагин hapi-cron так же, как вы зарегистрировали hapi-raven.

composer((err, server) => {
    if (err)
        throw err
        server.initialize((errInit) => {
            if (err)
                throw errInit
                const register = (hapiRaven, options, next) => {
                    return next()
                }
            register.attributes = {
                name: 'hapi-raven',
                version: '1.0.1',
                options: {}
            }
            const hapiCron = {
                register: require('hapi-cron'),
                options: {
                    jobs: [{
                            name: 'Workout Every minute',
                            time: '* * * * *',
                            timezone: 'America/Los_Angeles',
                            request: {
                                method: 'GET',
                                url: `/workout-reminder?type=everyMinute`,
                            },
                            callback: (res) => {
                                console.info('Workout Every minute')
                            }
                        }
                    ]
                }
            }
            server.register([register, hapiCron])
            server.start(() => {
                // server starts
            })
        })
})
...