- 服务器 Server
- server([options])
- Server options
- 服务器属性 Server properties
- server.auth.default(options)
- server.auth.scheme(name, scheme)
- server.auth.strategy(name, scheme, [options])
- await server.auth.test(strategy, request)
- await server.auth.verify(request)
- server.bind(context)
- server.cache(options)
- await server.cache.provision(options)
- server.control(server)
- server.decoder(encoding, decoder)
- server.decorate(type, property, method, [options])
- server.dependency(dependencies, [after])
- server.encoder(encoding, encoder)
- server.event(events)
- await server.events.emit(criteria, data)
- server.events.on(criteria, listener)
- server.events.once(criteria, listener)
- await server.events.once(criteria)
- server.expose(key, value)
- server.expose(obj)
- server.ext(events)
- server.ext(event, method, [options])
- await server.initialize()
- await server.inject(options)
- server.log(tags, [data, [timestamp]])
- server.lookup(id)
- server.match(method, path, [host])
- server.method(name, method, [options])
- server.method(methods)
- server.path(relativeTo)
- await server.register(plugins, [options])
- server.route(route)
- server.rules(processor, [options])
- await server.start()
- server.state(name, [options])
- server.states.add(name, [options])
- await server.states.format(cookies)
- await server.states.parse(header)
- await server.stop([options])
- server.table([host])
- Route options
- route.options.app
- route.options.auth
- route.options.bind
- route.options.cache
- route.options.compression
- route.options.cors
- route.options.description
- route.options.ext
- route.options.files
- route.options.handler
- route.options.id
- route.options.isInternal
- route.options.json
- route.options.jsonp
- route.options.log
- route.options.notes
- route.options.payload
- route.options.plugins
- route.options.pre
- route.options.response
- route.options.rules
- route.options.security
- route.options.state
- route.options.tags
- route.options.timeout
- route.options.validate
- Request lifecycle
- 请求
- 插件
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
route.options.pre
默认值: none.
pre
选项允许定义在调用处理程序之前执行操作的方法。 这些方法允许将处理程序逻辑分解为更小的,可以跨路由共享的可重用组件,以及提供先决条件操作的更清晰的错误处理(例如从数据库加载所需的参考数据).
pre
被赋予一个有序的方法数组,这些方法按顺序被串行调用。如果 pre
数组包含另一个方法数组作为其元素之一, 这些方法是并行调用的。 请注意,在并行执行期间, 如果任何方法错误, 返回一个 takeover response , 或终止信号, 其他并行方法将继续执行,但一旦完成将被忽略。
pre
可以分配一个混合数组:
包含下面列出的元素的数组,它们是并行执行的。
一个对象带有:
method
- lifecycle method .assign
- 用于在request.pre
和 [request.preResponses
](#request.preResponses 中分配方法响应的键名。failAction
- 一个failAction
value ,用于确定预处理程序方法抛出错误时要执行的操作。如果指定assign
并且failAction
设置不是'error'
,那么错误将会被分配。
方法函数 - 与包含单个
method
键的对象相同。
请注意,预处理程序方法的行为与返回值时其他 lifecycle methods 的行为方式不同。 该值用于分配相应的 request.pre
和 request.preResponses
(#request.preResponses)属性,而不是该值成为新的响应 payload。 否则,错误处理,takeover response](#takeover-response) 或中止信号的行为与任何其他 lifecycle methods 的行为相同。
const Hapi = require('hapi'); const server = Hapi.server({ port: 80 }); const pre1 = function (request, h) { return 'Hello'; }; const pre2 = function (request, h) { return 'World'; }; const pre3 = function (request, h) { return request.pre.m1 + ' ' + request.pre.m2; }; server.route({ method: 'GET', path: '/', config: { pre: [ [ // m1 and m2 executed in parallel { method: pre1, assign: 'm1' }, { method: pre2, assign: 'm2' } ], { method: pre3, assign: 'm3' }, ], handler: function (request, h) { return request.pre.m3 + '!\n'; } } });
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论