- 服务器 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 object
响应对象包含请求响应值以及各种 HTTP 头 和 标识 当 lifecycle method 返回一个值时, 该值将包含在响应对象中,以及一些默认标识(例如 200
状态码)。提供了 h.response()
方法,为了在返回之前自定义响应,。
Response properties
response.app
访问: 读 / 写.
默认值: {}
.
应用程序特定的状态. 提供存储应用程序数据的安全位置,而不会与框架发生潜在【potential】冲突. 不应该使用 plugins ,应使用 plugins[name]
.
response.events
访问: 只读 并且是公共的 podium 接口.
response.events
对象支持以下对象:
'peek'
- 为回写客户端连接的每个数据块触发. 事件签名为function(chunk, encoding)
.'finish'
- 当响应完成写入单在客户端连接结束之前触发. 事件签名为function ()
.
const Crypto = require('crypto'); const Hapi = require('hapi'); const server = Hapi.server({ port: 80 }); const preResponse = function (request, h) { const response = request.response; if (response.isBoom) { return null; } const hash = Crypto.createHash('sha1'); response.events.on('peek', (chunk) => { hash.update(chunk); }); response.events.once('finish', () => { console.log(hash.digest('hex')); }); return h.continue; }; server.ext('onPreResponse', preResponse);
response.headers
访问: 只读。
默认值: {}
.
包含响应头的对象,其中每个键是 header 字段名称,值是字符串的 header 值或字符串数组
请注意,这是一个不完整的 header 列表,要包含在响应中。 一旦响应准备好传输,将添加其他 header。
response.plugins
访问: 读 / 写.
默认值: {}
.
插件特定的状态. 提供存储和传递请求级插件数据的位置。 plugins
是一个对象,其中每个键是一个插件名称,值是状态。
response.settings
访问: 只读。
包含响应处理标志的对象。
response.settings.passThrough
访问: 只读。
默认值: true
.
如果为 true
并且 source
为一个 Stream
, 将流对象的 statusCode
and headers
属性复制到出站响应
response.settings.stringify
访问: 只读。
默认值: null
(use route defaults).
当 source
值需要字符串化时,覆盖路由 json
选项使用。
response.settings.ttl
访问: 只读。
默认值: null
(use route defaults).
如果设置, 覆盖路由的 cache
具有到期值(以毫秒为单位)。
response.settings.varyEtag
默认值: false
.
如果为 true
, 当 HTTP 'Vary' 头出现时,后缀将在传输时自动添加到 'ETag' 标题中(由 '-'
字符分隔)。
response.source
访问: 只读。
lifecycle method 返回的原始值.
response.statusCode
访问: 只读。
默认值: 200
.
HTTP 相应状态码。
response.variety
访问: 只读。
一个字符串,指示 source
类型具有以下可用值:
'plain'
- 一个简单的相应,如 字符串, 数字,null
, 或简单对象.'buffer'
- aBuffer
.'stream'
- aStream
.
response.bytes(length)
HTTP 'Content-Length' 头 (避免分块传输编码) :
length
- header 值。 必须与实际 payload 大小匹配。
返回值: 当前相应对象.
response.charset(charset)
设置 'Content-Type' HTTP header 'charset' 属性:
charset
-charset 属性值
返回值: 当前相应对象.
response.code(statusCode)
设置 HTTP 状态码:
statusCode
- HTTP 状态码 (例如 200).
返回值: 当前相应对象。
response.message(httpMessage)
设置 HTTP 状态信息:
httpMessage
- the HTTP status message (例如 'Ok' for status code 200).
返回值: 当前相应对象。
response.created(uri)
将 HTTP 状态代码设置为 Created(201)和 HTTP 'Location' 头,其中:
uri
- 用作 'Location' 值的绝对或相对 URI。
返回值: 当前相应对象。
response.encoding(encoding)
将用于串行数据的字符串编码方案设置为 HTTP 有效负载,其中:
encoding
- 编码属性值 (see node Buffer encoding ).
返回值: 当前相应对象。
response.etag(tag, options)
设置标识 entity tag :
tag
- 没有双引号的实体标记字符串。options
- (可选) 设置如下:weak
- 如果为true
, 标识将以'W/'
弱标识符为前缀. 为了确定 304 响应状态,弱标签将无法匹配相同的标签。 默认为false
.vary
- 如果为true
并且内容编码被设置或应用于相应 (例如 'gzip' or 'deflate'), 编码名称将在传输时自动添加到标记中 (以'-'
分割的字符串). 忽略weak
为true
. 默认为 totrue
.
返回值: 当前相应对象。
response.header(name, value, options)
设置 HTTP header:
name
- header 名称.value
- header 值.options
- (可选) 对象:append
- 如果true
, 使用separator
将值附加到任何现有的 header 值中. 默认为false
.separator
- 附加到现有值时用作分隔符的字符串。 默认为','
.override
- 如果为false
, 如果存在现有值,则不设置 header 值。 默认为true
.duplicate
- 如果false
, 如果已包含提供的值,则不会修改 header 值. 当append
为false
或 如果name
为'set-cookie'
不会被添加. 默认为true
.
返回值: 当前相应对象。
response.location(uri)
设置 HTTP 'Location' header:
uri
- 用作 'Location' 值的绝对或相对 URI。
返回值: 当前相应对象。
response.redirect(uri)
设置 HTTP 重定向响应(302)并使用其他方法修饰响应:
uri
- 用于将客户端重定向到另一个资源的绝对或相对 URI。
返回值: 当前相应对象。
使用 response.temporary()
来装饰响应对象, response.permanent()
, 和 response.rewritable()
方法 轻松更改默认重定向代码 (302).
Permanent | Temporary | |
---|---|---|
Rewritable | 301 | 302 |
Non-rewritable | 308 | 307 |
response.replacer(method)
设置 JSON.stringify()
replacer
参数:
method
- replacer 函数或数组. 默认为 none.
返回值: 当前相应对象。
response.spaces(count)
设置 JSON.stringify()
space
参数:
count
- 缩进嵌套对象键的空格数。 默认为 没有缩进.
返回值: 当前相应对象。
response.state(name, value, [options])
设置 HTTP cookie:
name
- cookie 名称.value
- cookie 值. 如果没有定义options.encoding
, 必须是字符串类型. 参阅server.state()
以获取支持的encoding
的值.options
- (可选) 可配置的. 如果状态之前已使用server.state()
在服务器上注册,options
中的指定键将与默认服务器定义合并。
返回值: 当前相应对象。
response.suffix(suffix)
当相应通过 JSON.stringify()
处理时设置字符串前缀:
suffix
- 字符串前缀.
返回值: 当前相应对象。
response.ttl(msec)
覆盖此响应实例的默认路由缓存过期规则:
msec
- 生存时间值,以毫秒为单位.
返回值: 当前相应对象。
response.type(mimeType)
设置 HTTP 的 'Content-Type' header:
value
- is the mime type.
返回值: 当前相应对象。
应该仅用于覆盖每种响应类型的内置默认值。
response.unstate(name, [options])
通过设置过期值清除 HTTP cookie:
name
- cookie 名称.options
- (可选) 过期 cookie 的配置. 如果状态之前已使用server.state()
在服务器上注册,options
中的指定键将与默认服务器定义合并。
返回值: 当前相应对象。
response.vary(header)
通过 HTTP 'Vary' 头将提供的标头添加到影响响应生成的输入列表中:
header
- HTTP 请求头名称.
返回值: 当前相应对象。
response.takeover()
标记相应对象为一个 takeover response 。
返回值: 当前相应对象。
response.temporary(isTemporary)
设置状态码为 302
或 307
(基于 response.rewritable()
设置) :
isTemporary
- 如果为false
, 将状态设置为永久. 默认为true
.
返回值: 当前相应对象。
仅在调用 response.redirect()
方法后才可用.
response.permanent(isPermanent)
设置状态码为 301
或 308
(基于 response.rewritable()
设置) :
isPermanent
- 如果false
, 将状态设置为临时. 默认为true
.
返回值: 当前相应对象。
仅在调用 response.redirect()
方法后才可用.
response.rewritable(isRewritable)
设置状态码为 301
/ 302
为可重写 (允许将请求方法从 'POST' 更改为 'GET') 或 307
/ 308
为不可重写 (不允许将请求方法从 'POST' 更改为 'GET'). 精确代码基于 response.temporary()
or response.permanent()
设置. 参数:
isRewritable
- 如果false
, 设置为不可重写. 默认为true
.
返回值: 当前相应对象。
仅在调用 response.redirect()
方法后才可用.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论