- 服务器 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
- 请求
- 插件
Response Toolkit
访问: 只读。
response toolkit 是传递给每个 lifecycle method 的属性和工具类的集合。 它有点难以定义,因为它提供了用于操作响应以及其他信息的两个实用程序。 由于工具包是作为函数参数传递的, 开发人员可以随意命名. 出于本文档的目的,使用 h
表示法. 它以 RethinkDB r
方法的命名精神, h
代表 hapi.
Toolkit properties
h.abandon
访问: 只读。
response 标识. 当由生命周期方法返回时, 请求生命周期跳转到最终化步骤,而无需与节点响应流进一步交互。 是由开发人员直接通过 request.raw.res
编写和结束相应的.
h.close
访问: 只读。
response 标识。 当由生命周期方法返回时, 在调用 request.raw.res.end())
关闭节点响应流之后,请求生命周期跳到最终步骤。
h.context
访问: 读 / 写 (如果对象被修改,将影响共享上下文).
response 标识。 通过设置的路由 bind
选项或 server.bind()
,提供访问路由和服务器上下文。
h.continue
访问: 只读。
response 标识。 当生命周期方法返回时,请求生命周期将继续,而不会更改响应。
h.realm
访问: 只读。
与匹配路由关联的 server realm 默认为 onRequest 阶段的根服务器 realm.
h.request
访问:只读和公共请求接口。
[request] 对象。 request
生命周期函数参数副本用于 toolkit decorations 访问当前的请求
h.authenticated(data)
用于 [authentication] 函数传回有效凭证,其中:
data
- 一个对象:credentials
- (required) 表示已验证实体对象artifacts
- (可选) 认证 artifacts 对象确定认证结构
返回值: 一个内部的认证对象
h.entity(options)
设置响应的 'ETag' and 'Last-Modified' 头,并检查任何条件请求头以确定是否符合 HTTP 304 (Not Modified)。如果实体值与请求条件匹配, h.entity()
返回生命周期方法的响应对象,以返回其值,该值将设置 304 响应。 否则,它设置提供的实体头并返回 undefined
. 方法参数如下:
options
- 一个必选的配置:etag
- ETag 字符串. 如果modified
没有指定,那么为必须值. 默认为 no header.modified
- Last-Modified 头部值. 如果etag
没有指定,那么为必须值。 默认为 no header.vary
- 与response.etag()
选项相同. 默认为true
.
返回值: - response object 如果响应没有发生了变化。 - undefined
如果响应发生了变化。
如果返回 undefined
, 开发人员必须返回有效的生命周期方法值。 如果返回一个响应, 它应该被用作返回值 (但可以使用响应方法进行自定义).
const Hapi = require('hapi'); const server = Hapi.server({ port: 80 }); server.route({ method: 'GET', path: '/', config: { cache: { expiresIn: 5000 }, handler: function (request, h) { const response = h.entity({ etag: 'abc' }); if (response) { response.header('X', 'y'); return response; } return 'ok'; } } });
h.redirect(uri)
将客户端重定向到指定的 URI。 与调用 h.response().redirect(uri)
相同.
返回一个 response object .
const handler = function (request, h) { return h.redirect('http://example.com'); };
h.response([value])
包含提供的值并且返回一个 response
](#response-object) 对象,允许自定义响应 (例如 设置 HTTP 状态码, 自定义 headers, 等等.), 其中:
value
- (可选) 返回值. 默认为null
.
返回 response object .
// Detailed notation const handler = function (request, h) { const response = h.response('success'); response.type('text/plain'); response.header('X-Custom', 'some-value'); return response; }; // Chained notation const handler = function (request, h) { return h.response('success') .type('text/plain') .header('X-Custom', 'some-value'); };
h.state(name, value, [options])
设置响应 cookie, 使用 response.state()
相同的参数。
返回值: none.
const ext = function (request, h) { h.state('cookie-name', 'value'); return h.continue; };
h.unauthenticated(error, [data])
[authentication] 方法用于指示身份认证失败,并将收到的凭证传回:
error
- (必选) 认证错误.data
- (可选) 一个对象:credentials
- (必选) 表示已验证实体的对象。artifacts
- (可选) 认证 artifacts 对象确定认证结构
该方法用于传递身份验证错误和凭据。例如,如果请求包括过期的凭证,它允许该方法传回用户信息 (结合 'try'
认证 mode
) 作为错误定制
如果没有传递认证,抛出的错误或将其传递给 h.unauthenticated()
方法没有区别,但它可能仍然有助于代码清晰度。
h.unstate(name, [options])
清除响应 cookie,使用 response.unstate()
相同的参数。
const ext = function (request, h) { h.unstate('cookie-name'); return h.continue; };
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论