- 服务器 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
- 请求
- 插件
server.method(name, method, [options])
注册一个 server method 其中:
name
- 用于通过server.methods[name]
调用方法的唯一方法名称。method
- 方法函数带有签名async function(...args, [flags])
其中:...args
- 方法函数参数(可以是任意数量的参数或无)。flags
- 启用缓存时,用于设置可选方法结果标志的对象。 此参数是自动提供的,只能在方法功能中访问/修改。 它不能作为参数传递。ttl
-0
结果有效,但无法缓存。默认为缓存策略。
options
- (可选) 配置对象:bind
- 一个上下文对象在被调用时传递给方法函数(通过this
)。 当方法已经注册,默认为 当前上下文 (通过 [server.bind()
](#server.bind() 设置)。 如果方法是箭头函数,则忽略。cache
-server.cache()
中使用的缓存配置相同。generateTimeout
选项是必需的。generateKey
- 用于从传递给方法函数的参数生成唯一键(用于缓存)的函数(flags
参数不作为输入传递)。 如果函数的参数都是'string'
,'number'
或'boolean'
类型,服务器将自动生成一个唯一键。 但是,如果该方法使用其他类型的参数, 必须提供密钥生成函数,该函数采用与函数相同的参数并返回唯一字符串 (如果不能生成密钥,则为null
)。
返回值: none.
方法名称可以嵌套 (举例 utils.users.get
) 它将自动在 server.methods
(举例 通过 server.methods.utils.users.get
访问) 下创建完整路径.
配置启用缓存时, server.methods[name].cache
被赋予一个具有以下属性和方法的对象: - await drop(...args)
- 一个函数,可用于清除给定键的缓存。 - stats
- 具有缓存统计信息的对象, 请参阅 catbox 获取统计文档。
单个参数的例子:
const Hapi = require('hapi'); async function example() { const server = Hapi.server({ port: 80 }); const add = (a, b) => (a + b); server.method('sum', add, { cache: { expiresIn: 2000, generateTimeout: 100 } }); console.log(await server.methods.sum(4, 5)); // 9 }
对象参数的例子:
const Hapi = require('hapi'); async function example() { const server = Hapi.server({ port: 80 }); const addArray = function (array) { let sum = 0; array.forEach((item) => { sum += item; }); return sum; }; const options = { cache: { expiresIn: 2000, generateTimeout: 100 }, generateKey: (array) => array.join(',') }; server.method('sumObj', addArray, options); console.log(await server.methods.sumObj([5, 6])); // 11 }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论