register: async (server, options) => {
server.ext('onRequest', (request, h) => {
if (request.params) {
log.verbose(`onRequest:${request.method.toUpperCase()}:${request.path}/${request.params}`)
} else {
log.verbose(`onRequest:${request.method.toUpperCase()}:${request.path}`)
}
if (Object.getOwnPropertyNames(request.query).length) {
log.verbose(`onRequest:queryParameters: ${JSON.stringify(request.query)}`)
}
if (request.headers && request.headers['x-access-token']) {
log.verbose(`onRequest:heders:x-access-token ${JSON.stringify(request.headers['x-access-token'])}`)
}
return h.continue
})
server.ext('onPreAuth', (request, h) => {
log.verbose('onPreAuth')
return h.continue
})
server.ext('onCredentials', (request, h) => {
log.verbose('onCredentials')
return h.continue
})
server.ext('onPostAuth', (request, h, error) => {
if (request.payload) {
log.verbose(`onPostAuth:bodyPayload: ${JSON.stringify(request.payload)}`)
}
return h.continue
})
server.ext('onPreHandler', (request, h) => {
log.verbose('onPreHandler')
return h.continue
})
server.ext('onPostHandler', (request, h) => {
log.verbose('onPostHandler')
return h.continue
})
server.ext('onPreResponse', (request, h) => {
if (request && request.response && request.response.source) {
try {
log.verbose(`onPreResponse:${JSON.stringify(request.response.source)}`)
} catch (err) {
log.warn(err)
log.verbose(h.request.response.source.toString())
}
}
return h.continue
})
}
以下是Hapi的生命周期:
- OnRequest:当请求到达服务器时调用。
- OnPreAuth:当请求到达路由的身份验证部分时调用。
- OnPostAuth:当请求从路由的身份验证部分离开时调用。
- OnPreHandler:当请求到达路由的处理程序部分时调用。
- OnPostHandler:当请求从路由的处理程序部分离开时调用。
OnPreResponse:在返回响应时调用。
7onCredentials:是Hapi v17中新增的。
不明白onCredentials的用途是什么。 如果我对Hapi的生命周期理解有误,请纠正我。
hapijs
和hapi.js
?它们似乎是关于同一个API的(https://stackoverflow.com/tags/hapi.js/synonyms)。 - Seblor