- 服务器 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
- 请求
- 插件
请求属性
request.app
访问: 读 / 写.
应用程序特定的状态. 提供存储应用程序数据的安全位置,而不会与框架发生潜在冲突。 不应该被 plugins 使用, 应该使用 plugins[name]
.
request.auth
访问: 只读。
认证信息:
artifacts
- 从身份验证策略接收的对象,用于与身份验证相关的操作。credentials
- 在身份验证过程中收到的credential
对象。 对象的存在并不意味着成功的身份验证。error
- 模式设置为'try'
失败时认证的错误.isAuthenticated
- 如果请求已成功验证设置为true
, 否则为false
.isAuthorized
-true
是请求已成功授权对路由认证access
配置. 如果路由未定义访问规则或请求授权失败, 设置为false
.isInjected
-true
是如果请求已经通过server.inject()
auth
选项被认证, 否则为undefined
.mode
- 路由认证的模式.strategy
- 所用策略的名称。
request.events
访问: 只读并且是公共 podium 接口.
request.events
支持一下事件:
'peek'
- 为从客户端连接读取的每个有效负载数据块触发。 事件方法签名是function(chunk, encoding)
.'finish'
- 请求有效负责完成读取时发出. 事件方法签名是function ()
.'disconnect'
- 当请求错误或意外终止时触发.
const Crypto = require('crypto'); const Hapi = require('hapi'); const server = Hapi.server({ port: 80 }); const onRequest = function (request, h) { const hash = Crypto.createHash('sha1'); request.events.on('peek', (chunk) => { hash.update(chunk); }); request.events.once('finish', () => { console.log(hash.digest('hex')); }); request.events.once('disconnect', () => { console.error('request aborted'); }); return h.continue; }; server.ext('onRequest', onRequest);
request.headers
访问: 只读。
原始请求头 (参考 request.raw.req.headers
).
request.info
访问: 只读。
请求信息:
acceptEncoding
- 请求的编码completed
- 请求处理完成的时间戳 (0
表示还在处理中).cors
- 请求的 CORS 信息 (尽在'onRequest'
扩展之后可用,因为每个路由配置了 CORS, 并且在请求生命周期中这个点上没有做出路由决策), 如下:isOriginMatch
- 如果果请求 'Origin' 头与匹配的 CORS 限制【restrictions】匹配则为true
。 如果未找到 'Origin' 头或者不匹配,则设置为false
host
- HTTP 'Host' 头 (例如 'example.com:8080').hostname
- 'Host' 头部的 hostname 部分 (例如 'example.com').id
- 唯一请求标识符 (using the format '{now}:{connection.info.id}:{5 digits counter}').received
- 请求接收时间戳.referrer
- HTTP 'Referrer' (or 'Referer') 头.remoteAddress
- 远程客户端 IP 地址.remotePort
- 远程客户端端口.responded
- 请求的相应时间 (0
标识尚未响应或者completed
被设置但响应失败).
请注意, request.info
对象不能被修改
request.logs
访问: 只读。
一个数组包含日志请求事件。
注意如果路由 log.collect
被设置为 false
, 数组将为空。
request.method
访问: 只读。
小写的请求方法 (例如 'get'
, 'post'
).
request.mime
访问: 只读。
解析后的 content-type 头. 仅在启用有效负载解析且未发生错误时可用
request.orig
访问: 只读。
在进行任何验证修改之前, 包含 params
, query
, payload
和 state
值的对象。仅在执行输入验证时设置。
request.params
访问: 只读。
一个对象,其中每个键都是具有匹配值的路径参数名称,如 Path parameters 中所述.
request.paramsArray
访问: 只读。
一个数组,包含它们在路径中出现的顺序的所有路径 params
的值。
request.path
访问: 只读。
请求 URI 的 pathname 组件.
request.payload
访问: 只读。
请求 payload 基于路由 payload.output
和 payload.parse
的设置.
request.plugins
3
123
访问: 读 / 写.
插件特定的状态。 提供存储和传递请求级插件数据的位置。 plugins
是一个对象,其中每个键都是一个插件名称,值是状态。
request.pre
访问: 只读。
一个对象,其中每个键是由 route pre-handler methods 函数指定的名称。值会被作为原始值提供给后续函数作为参数。对于包装响应对象,使用 responses
。
request.response
访问: 读 / 写 (see limitations below).
对象可以被修改,但不能为其分配另一个对象
设置时的响应对象。 对象可以被修改,但不能为其分配另一个对象。从 extension point 中替换另一个响应,返回一个新的相应值。当没有设置响应时,会为 null
(例如,当客户端断开连接时请求过早终止)。
request.preResponses
访问: 只读。
与 pre
相同,但表示为 pre 方法创建的响应对象。
request.query
访问: 只读。
一个对象,其中每个键是查询参数名称,每个匹配值是参数值,如果参数重复,则为值数组。 可以通过 request.setUrl 间接【indirectly】修改.
request.raw
访问: 只读。
包含 Node HTTP 服务器对象的对象。 不建议与这些原始对象直接交互
req
- node 请求对象.res
- node 相应对象.
request.route
访问: 只读。
请求路由信息, 如下:
method
- 路由的 HTTP 请求方法.path
- 路由地址.vhost
- 如果配置.realm
- 与路由相关的 active realm .settings
- route options �对象应用的默认设置fingerprint
- 路由内部规范化字符串,表示规范化路径。
request.server
访问: 只读并且为公有服务器接口
服务器对象.
request.state
访问: 只读。
包含已解析的 HTTP 状态信息(cookie)的对象,其中每个键是 cookie 名称和值,是使用任何已注册的 cookie 定义处理后的匹配 cookie 内容。
request.url
访问: 只读。
解析后的请求 URI.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论