如何使用可选参数创建端点? (节点、快递、MongoDB)

Posted

技术标签:

【中文标题】如何使用可选参数创建端点? (节点、快递、MongoDB)【英文标题】:How to create an endpoint with optional parameters? (Node, Express, MongoDB) 【发布时间】:2021-03-24 12:58:35 【问题描述】:

我创建了一个包含两个主要实体 CATS 和 BREEDS(一对多)的 MongoDB,但我从未使用过可选参数。

我要处理以下请求。

获取所有猫的“GET”请求(带有一个可选参数 确定是否也应返回描述,以及另一个可选的 按品种过滤的参数)

'获取特定猫的 GET 请求(带有可选参数 这将确定是否也将返回有效负载) 姓名或身份证

我包含我的数据库模式以备不时之需。

const CatSchema = new Schema(
    name:  type: String, required: true, trim: true ,
    description:  type: String, required: true, trim: true ,
    breed: 
        type: Schema.Types.ObjectId,
        ref: "Breed"
    
);

const BreedSchema = new Schema(
    name:  type: String, required: true, trim: true 
);

【问题讨论】:

【参考方案1】:

使用问号使您的参数可选。 /cats/:description?

您还可以使用多个可选参数。 /cats/:description?/:breed?

编辑, 请务必检查参数:

if(description) 
    //show cats with description
 

类似的东西。

【讨论】:

以上是关于如何使用可选参数创建端点? (节点、快递、MongoDB)的主要内容,如果未能解决你的问题,请参考以下文章

python 可选路径参数的Flask catchall端点

没有在快递(节点)的 PATCH 方法中接收表单数据

如何从快递控制反应路由器

您将如何使用 Spring Boot 处理仅具有可选查询参数的 REST API?

如何从角度组件使用我的节点端点插入数据?

使用带护照和快递的可选授权路线