首页 > 解决方案 > 如何使用最新版本的 hapi.js 注册 hapi cron

问题描述

我的服务器已向 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 个 hapi 版本中工作的上述代码中我可以在哪里使用下面的注册选项。

{
      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')
          }
        }]
      }  
    }

标签: javascriptnode.jshapijshapi

解决方案


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
            })
        })
})

推荐阅读