gpt4 book ai didi

javascript - 如何使用 NestJS 创建带参数的嵌套路由

转载 作者:搜寻专家 更新时间:2023-10-30 21:04:27 24 4
gpt4 key购买 nike

我需要构建一个 API,其中大多数路由都以一个通用 URL 部分为前缀,该部分也有一个参数。

在我的具体情况下,我的路线需要如下所示:

/accounts/:account/resource1/:someParam

/accounts/:account/resource2/:someParam/whatever

/accounts/:account/resource3/

/accounts/:account/resource4/subResource/

等等..

理想情况下,我会创建一个parent 路由/accounts/:account/,它将包含children 路由(resource1resource2resource3resource4 等...)。

我还需要从所有子路由访问 :account 参数。

使用 NestJS 实现此目的的最佳方法是什么?

最佳答案

关于您的用例,您可能想看看这个路由器模块
=> https://github.com/shekohex/nest-router

按照这个模块的文档,你可以像这样定义你的路由:

... //imports
const routes: Routes = [
{
path: '/ninja',
module: NinjaModule,
children: [
{
path: '/cats',
module: CatsModule,
},
{
path: '/dogs',
module: DogsModule,
},
],
},
];

@Module({
imports: [
RouterModule.forRoutes(routes), // setup the routes
CatsModule,
DogsModule,
NinjaModule
], // as usual, nothing new
})
export class ApplicationModule {}

当然,路由将定义在一个单独的文件中,例如 routes.ts

鉴于您有一个按模块的 Controller ,之前的代码将以以下路由树结束:

ninja
├── /
├── /katana
├── cats
│ ├── /
│ └── /ketty
├── dogs
├── /
└── /puppy

示例:如果你想到达 ketty Controller 的路由,您将需要到达此端点:
<强> <your-api-host>/ninja/cats/ketty


更新如果您使用 NestJs v8.0.0,这种方法今天已经过时了。或更高版本,作为 nest-router 的文档告诉我们它现在包含在 @nestjs/core

正如@yehonatan yehezkel 所指出的,您可以在此处遵循推荐方法的文档 https://docs.nestjs.com/recipes/router-module

关于javascript - 如何使用 NestJS 创建带参数的嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50438986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com