网络服务 (Router)
TIP
Koishi 默认情况下并不会监听任何端口,如要启用网络服务请记得配置 options.port。
ctx.router 是 Koishi 的内置服务,提供了一个基于 Koa Router 的简单路由系统,用于管理 Koishi 应用收到的网络请求。除了 Koa Router 所支持的方法外,Router API 还提供了一些额外的功能,例如支持接受 WebSocket 连接等。
实例方法
ctx.router[method](path, middleware)
- method: 可以是
get,post,put,delete,patch或all(注意 这里是小写) - path:
string | RegExp | (string | RegExp)[]路径 - middleware:
FunctionKoa 中间件
处理特定路径上的网络请求。具体请参见 这里。
ctx.router.ws(path, handler)
- path:
string | RegExp | (string | RegExp)[]路径 - handler:
WebSocketHandler处理函数,接受下列参数- socket:
WebSocketWebSocket 连接 - request:
IncomingMessage网络请求
- socket:
在给定的路径上支持 WebSocket 连接。
副作用处理
我们在扩展了 Koa Router 的同时,对于其常用方法也支持了自动的副作用处理。当一个插件被卸载时,其上注册的路由也将同时被删除。不过在使用时也会有一些限制。部分方法会影响其他插件上下文或不支持副作用处理,因此请避免使用:
- router.param()
- router.prefix()
