- 服务器 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
- 请求
- 插件
await server.inject(options)
向服务器注入一个模拟传入 HTTP 请求的请求,而不进行实际的套接字连接。 Injection 对于测试目标以及没有网络堆栈的开销和限制的内部调用路由逻辑是很有用的。
该方法使用 shot 模块注入, 以及一些其他选项和响应属性:
options
- 可以为请求的 URI 分配一个字符串, 或一个对象:method
- (可选) 请求 HTTP 方法 (例如'POST'
). 默认为'GET'
.url
- (必要的) 请求 URL. 如果 URI 包含权限 (例如'example.com:8080'
), 它用于自动设置 HTTP 'HOST' 标头,除非在headers
中指定了一个。headers
- (可选) 带有可选请求 header 的对象,其中每个键是 header 名称,值是 header 内容。 默认为 没有添加 shot headers.payload
- (可选) 字符串, buffer 或 包含请求 payload 的对象. 如果是对象,它将被转换为字符串。 默认为 无 payload. 注意,如果没有提供 'Content-Type' header, payload 处理 默认为'application/json'
。auth
- (optional) 包含解析的身份验证凭据的对象,其中:strategy
- (必要) 与提供的验证身份验证策略匹配的名称。credentials
- (required) 包含身份验证信息的凭据对象。credentials
用于绕过默认的身份验证策略, 并直接验证,就好像它们是通过身份验证方案收到的一样。artifacts
- (optional) 包含身份验证 artifacts 信息的 artifacts 对象。artifacts
用于绕过默认的身份验证策略, 并直接验证,就好像它们是通过身份验证方案收到的一样。 默认没有 artifacts.
app
- (可选) 设置request.app
的初始值, 默认为{}
.plugins
- (可选) 设置request.plugins
的初始值, 默认为{}
.allowInternals
- (可选) 设置true
,允许访问config.isInternal
的路由。 默认为false
.remoteAddress
- (可选) 设置传入连接的远程地址。simulate
- (可选) 带有用于模拟客户端请求流条件以进行测试的选项的对象:error
- 如果为true
, payload 传输后触发'error'
事件 (if any). 默认为false
.close
- 如果为true
, payload 传输后触发'close'
事件 (if any). 默认为false
.end
- 如果为false
, 不会结束流。 默认为true
.split
- 指示请求 payload 是否将拆分为块。 默认为undefined
, 意味着 payload 不会被分块。
validate
- (可选) 如果为false
,options
输入未经过验证。 推荐在运行时使用inject()
,可以在单独测试输入验证情况下执行得更快。
返回值: 具有以下属性的响应对象:
statusCode
- HTTP 状态码.headers
- 包含 header 的对象。payload
- 响应 payload 字符串.rawPayload
- 原始响应的 payload bufferraw
-具有注入请求和响应对象的对象:req
- 模拟节点请求对象。res
- 模拟节点响应对象。
result
- 在序列化传输之前,原始处理程序响应 (例如 不是 stream 或视图时) 。 如果不可用,则将值设置为payload
。 用于检查和重用返回的内部对象 (而不是解析响应字符串).request
- the request object .
const Hapi = require('hapi'); async function example() { const server = Hapi.server({ port: 80 }); server.route({ method: 'GET', path: '/', handler: () => 'Success!' }); const res = await server.inject('/'); console.log(res.result); // 'Success!' }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论