Deno:访问控制器中的查询参数
Deno: Access query params in controller
我为 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 进行路由。我尝试了 oak 代码库中的各种关键字:查询、搜索等但没有成功。
我也尝试了 Oak 文档中的 getQuery,但我完全无法导入它。
在 Oak 中你可以使用 .searchParams
ctx.request.url.searchParams
要获得 userId
,您将使用:
const userId = ctx.request.url.searchParams.get('userId')
getQuery
来自 helpers.ts
目前仅在 master
上,因为它是在 12 小时前推出的。
您可以导入将从 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 });
});
我为 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 进行路由。我尝试了 oak 代码库中的各种关键字:查询、搜索等但没有成功。
我也尝试了 Oak 文档中的 getQuery,但我完全无法导入它。
在 Oak 中你可以使用 .searchParams
ctx.request.url.searchParams
要获得 userId
,您将使用:
const userId = ctx.request.url.searchParams.get('userId')
getQuery
来自 helpers.ts
目前仅在 master
上,因为它是在 12 小时前推出的。
您可以导入将从 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 });
});