问题描述
{ path: '',redirectTo: '/menu',pathMatch: 'full' },{
path: 'menu',children:
[
{ path: '',component: MenuComponent }
{ path: ':id',component: AboutComponent }
]
}
];
我遇到的问题是类型。 router.get('/twitter/tweets',async (ctx) => {
const { limit,page,search } = ctx.query
ctx.body = {
tweets: await twitter.all(limit,search),}
})
中的项目返回 ctx.query
。
它调用的服务如下:string[] | string
因此 async function all(_limit = 50,_page = 0,_search = '') {
和 limit
值应为数字。处理 koa ctx 验证以便将正确类型传递给服务的最佳方法是什么。
解决方法
由于文档 (https://koajs.com/#request),request.query 返回一个对象,值是字符串,您正确地解构了这个对象,现在在变量 limit
、{ {1}} 和 page
。
因此验证值有不同的可能性:
对于您的输入值,您可以执行以下操作:
search
也许您需要更复杂地验证您的数字和字符串值。例如。您还可以检查数值或字符串长度的最小值和最大值……但这取决于您的特定用例。