- 服务器 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.validate
默认值: { headers: true, params: true, query: true, payload: true, failAction: 'error' }
.
每个请求组件的请求输入验证。
route.options.validate.errorFields
默认值: none.
一个可选对象,其错误字段被复制到每个验证错误响应中。
route.options.validate.failAction
默认值: 'error'
(返回 Bad Request (400) 错误).
failAction
value 它确定如何处理失败的验证。 当为函数时, err
参数包括 err.output.payload.validation.source
下的错误验证类型.
route.options.validate.headers
默认值: true
(没有验证).
传入请求 header 的验证规则:
true
- 允许任何 header(未执行验证)。joi 验证对象。
使用签名
async function(value, options)
的验证函数,其中:value
-request.headers
包含请求 header 对象。options
-options
.- 如果有返回值,该值用作新的
request.headers
值,原始值存储在request.orig.headers
中。 否则,header 保持不变。 如果抛出错误,则根据failAction
处理错误。
请注意,所有 header 字段名称必须为小写,以匹配按节点规范化的 header。
route.options.validate.options
默认值: none.
传递给 joi 规则或自定义验证方法的选项对象。用于设置全局选项,例如 stripUnknown
或 abortEarly
(可用的完整列表 here )
如果定义了自定义验证函数(参见上面的 headers
, params
, query
, 或 payload
),则 options
可以将任意对象作为第二个参数传递给该函数。
其他输入值 (i.e. headers
, query
, params
, payload
, state
, app
, and auth
) 被添加到验证 context
下的 options
对象中 (参考规则 Joi.ref('$query.key')
)。
请注意,验证按顺序执行 (i.e. headers, params, query, and payload), 并且如果使用类型转换 (例如 转换一个字符串为数字), 尚未验证的输入值将返回原始值,未经验证和未经修改的值。
如果在服务器 routes
级别和路由级别定义了 headers
, params
, query
, 和 payload
的验证规则,单个路由设置会覆盖路由默认值(规则未合并)。
route.options.validate.params
默认值: true
(no validation).
传入请求路径参数的验证规则, 将路径与路径匹配后,提取任何参数, 并存储在 request.params
, 其中:
true
- 允许任何 path 参数 (没有进行验证).一个 joi 验证对象
使用签名
async function(value, options)
的验证函数,其中:value
- therequest.params
object containing the request path parameters.options
-options
.- 如果返回一个值, 则该值用作新的
request.params
值,原始值存储在request.orig.params
. 否则,path 参数保持不变 如果抛出错误,则根据failAction
处理错误 。
请注意,未将验证规则与路径路径参数定义匹配将导致所有请求失败。
route.options.validate.payload
默认值: true
(no validation).
传入请求 payload(request body)的验证规则,其中:
true
- 允许任何 payload (没有进行验证).false
- 不允许任意 payload一个 joi 验证对象
- 请注意,空的 payload 由
null
值表示。 如果提供了验证模式并且允许空 payload, 必须通过将规则设置 joi 格式允许为null
(例如Joi.object({ /* keys here */ }).allow(null)
).
- 请注意,空的 payload 由
使用签名
async function(value, options)
的验证函数,其中:value
- 包含请求 payload 的request.payload
对象。options
-options
.- 如果返回一个值, 则该值用作新的
request.payload
值,原始值存储在request.orig.payload
. 否则,payload 值保持不变 如果抛出错误,则根据failAction
处理错误 。
请注意,验证大型 payload 并修改它们将导致 payload 的内存重复(因为保留了 payload), 以及验证大量数据的显着性能成本。
route.options.validate.query
默认值: true
(no validation).
传入请求 URI 查询组件的验证规则('?' 和 '#' 之间的 URI 的键值部分)。查询被解析为其各自的键值对,解码,在验证之前存储在 request.query
中。其中:
true
- 允许的任何 query 参数值 (没有进行验证).false
-不允许 query 参数值。a joi validation object.
使用签名
async function(value, options)
的验证函数,其中:value
- 包含请求 query 参数的request.query
对象。options
-options
.- 如果返回一个值, 则该值用作新的
request.query
值, 原始值存储在request.orig.query
。 否则,query 参数保持不变。如果抛出错误,则根据failAction
处理错误 。 .
请注意,对查询参数的更改不会反映在 request.url
中。
route.options.validate.state
默认值: true
(不验证).
Validation rules for incoming cookies. The cookie
header is parsed and decoded into the request.state
prior to validation. Where:
true
- 任何 cookie 值都允许 (没有进行验证)。false
- 不允许使用 cookie。joi 验证对象
使用签名
async function(value, options)
的验证函数,其中:value
- therequest.state
object containing all parsed cookie values.options
-options
.- 如果返回一个值, 则该值用作新的
request.state
值 原始值存储在request.orig.state
. 否则,cookie 值保持不变。如果抛出错误,则根据failAction
处理错误 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论