参数获取指南
SugarServer中参数都是通过参数装饰的方式自动获取的
使用方法
首先得配置controller
import {Controller,router} from 'sugar-server';export class HelloWorldController extends Controller {@router.GetRoute('/')home () {return 'hello World!';}
我们用之前 Controller 篇的例子
加上参数装饰
使用有2步。
- 在 controller 中已经绑定 router装饰的函数下面增加
@parameter.getter的装饰,开始自动获取功能; - 在函数参数 前加
@parameter.query('name')等装饰,将会自动给参数赋值,而且顺序不限;
代码如下
import {parameter} from 'sugar-server';...@router.GetRoute('/')@parameter.getterhome (@parameter.query('name')name: string) {return `hello ${name}!`;}...
我们访问 /?name=小明,就可以看到页面上出现 hello 小明! 了
已经支持的参数获取装饰
query(key)获取url上的 query 参数,?key=valueheader(key)获取请求header里的内容,注意:http头是不区分大小写,请用小写来获取params(key)获取url路径上的参数,需要配合路由使用typescript @router.GetRoute('/:name') @parameter.getter home ( @parameter.params('name') name: string ) { console.log(name) // 这样就能输出 小明 了 }body()获取请求体中的数据body()会根据 content-type 自动识别;bodyJSON(path)获取JSON格式的请求体的内容,带path同上- 比如请求body 为
{ "id": 123 }的JSON; - 不是用 path 参数, 则返回
{ "id": 123 },完整的数据; - 传入参数
bodyJSON('id'), 则返回123,id属性的内容;
- 比如请求body 为
bodyFormData(path)获取formData的请求体的内容, 带path同上bodyText()获取字符串格式的请求体的内容config/config(configKey)获取config中的配置Response/NodeResponse/Request/NodeRequest分别获取 koa的response, node的response,koa的request, node的requestContextkoa的context,一般不太需要使用
