我为Deno POC编写了几个API。
这是路由代码:
const router = new Router()
router.get('/posts', getPosts)
.get('/posts/:id', getPostsById)
对于第二条路由,我能够在控制器中获取路径参数:getPostsById,使用关键字:params。这是控制器代码:
export const getPostsById = (
{ params, response }: { params:any, response: any }) => {
console.log(params, '||| params')}
如何以类似的方式获取查询参数(例如:/posts/2222?userId=3(
我正在使用橡木进行路由。我尝试了橡树代码库中的各种关键字:查询,搜索等,但没有成功。
我也尝试了从Oak文档中获取查询,但我完全无法导入它。
In Oak ou 可以使用.searchParams
ctx.request.url.searchParams
要获得userId
,您将使用:
const userId = ctx.request.url.searchParams.get('userId')
自 12 小时前推出以来,helpers.ts
getQuery
目前仅在master
上。
您可以导入将从master
中提取的https://deno.land/x/oak/helpers.ts
,而不是使用https://deno.land/x/oak@v4.0.0/mod.ts
。不过,不建议这样做,但在新版本发布并且您可以使用标记的导入之前会这样做。
import { getQuery } from 'https://deno.land/x/oak/helpers.ts'
router.get("/book/:id/page/:page", (ctx) => {
getQuery(ctx, { mergeParams: true });
});