当前位置: 首页 > news >正文

自己想做一个网站广告公司简称

自己想做一个网站,广告公司简称,WordPress关闭邮箱通知,网络营销的特点有即时性在 NestJS 中,Body()、Param() 和 Query() 用于处理不同类型的请求参数。以下是它们的含义及前端传递方式: Body():请求体参数 • 含义:用于获取请求体中的数据(如 POST/PUT 请求中提交的 JSON、表单数据等&#xff09…

在 NestJS 中,@Body()@Param()@Query() 用于处理不同类型的请求参数。以下是它们的含义及前端传递方式:


  1. @Body():请求体参数
    • 含义:用于获取请求体中的数据(如 POST/PUT 请求中提交的 JSON、表单数据等)。

• 前端传递方式:

• 发送 POST/PUT/PATCH 请求,将数据放在请求体中。

• JSON 示例(Axios):

```javascript
axios.post('/api/users', {name: 'John',age: 25
});
```

• 表单数据(如上传文件):

```javascript
const formData = new FormData();
formData.append('name', 'John');
formData.append('avatar', file);axios.post('/api/upload', formData, {headers: { 'Content-Type': 'multipart/form-data' }
});
```

  1. @Param():路由参数
    • 含义:获取 URL 路径中的动态参数(如 /users/:id 中的 id)。

• 前端传递方式:

• 直接在 URL 路径中传递参数,适用于 GET/DELETE 等请求。

• 示例(Axios):

```javascript
axios.get('/api/users/123'); // 匹配路由 `/users/:id`
```

• 后端获取方式:

```typescript
@Get(':id')
getUser(@Param('id') id: string) {// id = '123'
}
```

  1. @Query():查询参数
    • 含义:获取 URL 中 ? 后的键值对参数(如 /users?name=John&age=25)。

• 前端传递方式:

• 在 URL 后附加查询字符串,适用于 GET 请求。

• 示例(Axios):

```javascript
axios.get('/api/users', {params: { name: 'John', page: 2 }
});
// 实际 URL:/api/users?name=John&page=2
```

• 后端获取方式:

```typescript
@Get()
getUsers(@Query('name') name: string, @Query() query: any) {// name = 'John'// query = { name: 'John', page: '2' }
}
```

总结对比

参数类型装饰器传递位置常见场景示例 URL
Body@Body()请求体(Request Body)提交表单、JSON 数据POST /api/users
Param@Param()URL 路径中资源标识(如 ID)GET /api/users/123
Query@Query()URL 查询字符串过滤、分页、排序GET /api/users?name=John

掌握这些参数的使用方式,能够更灵活地处理不同场景下的数据传递需求。

在 NestJS 中,application/x-www-form-urlencodedapplication/jsonmultipart/form-data 是 HTTP 请求的 Content-Type,它们定义了请求体(@Body())的数据格式。而 @Param()@Query() 与请求体无关,只涉及 URL 路径参数和查询参数。以下是它们的联系与区别:


  1. application/x-www-form-urlencoded
    • 用途:传统的表单提交格式,数据会被编码为键值对(类似 URL 查询参数)。

• 与 @Body() 的关系:

• 数据通过 @Body() 接收。

• 前端传递时需设置 Content-Type: application/x-www-form-urlencoded

• 示例(Axios):

```javascript
axios.post('/api/submit', 'name=John&age=25', {headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
```

• NestJS 接收:

```typescript
@Post()
submitForm(@Body() formData: any) {// formData = { name: 'John', age: '25' }
}
```

  1. application/json
    • 用途:传递 JSON 格式的复杂数据(如嵌套对象、数组)。

• 与 @Body() 的关系:

• 数据通过 @Body() 接收,NestJS 会自动解析 JSON。

• 前端需设置 Content-Type: application/json

• 示例(Axios):

```javascript
axios.post('/api/data', { name: 'John', hobbies: ['coding', 'music'] }, {headers: { 'Content-Type': 'application/json' }
});
```

• NestJS 接收:

```typescript
@Post()
submitData(@Body() data: any) {// data = { name: 'John', hobbies: ['coding', 'music'] }
}
```

  1. multipart/form-data
    • 用途:上传文件或混合文本和文件数据(如表单包含文件输入)。

• 与 @Body() 的关系:

• 文本字段通过 @Body() 接收。

• 文件字段需结合 @UploadedFile()@UploadedFiles()(需使用 multer 中间件)。

• 示例(Axios):

```javascript
const formData = new FormData();
formData.append('name', 'John');
formData.append('avatar', file);axios.post('/api/upload', formData, {headers: { 'Content-Type': 'multipart/form-data' }
});
```

• NestJS 接收:

```typescript
@Post()
@UseInterceptors(FileInterceptor('avatar')) // 使用文件拦截器
uploadFile(@Body() formData: { name: string },@UploadedFile() file: Express.Multer.File
) {// formData.name = 'John'// file 包含上传的文件信息
}
```

  1. @Param()@Query()
    • 与 Content-Type 无关:

@Param() 从 URL 路径中获取参数(如 /users/:id)。

@Query() 从 URL 查询字符串中获取参数(如 /users?name=John)。

• 示例:

```javascript
// 前端请求
axios.get('/api/users/123?name=John');
```
```typescript
// NestJS 接收
@Get(':id')
getUser(@Param('id') id: string,  // id = '123'@Query('name') name: string // name = 'John'
) {}
```

总结对比

Content-Type数据位置适用场景NestJS 接收方式
application/x-www-form-urlencoded请求体(Body)简单键值对表单提交@Body()
application/json请求体(Body)复杂结构化数据(JSON)@Body()
multipart/form-data请求体(Body)文件上传或混合数据@Body() + @UploadedFile()
N/AURL 路径资源标识(如 ID)@Param()
N/AURL 查询字符串过滤、分页、排序参数@Query()

关键点

  1. @Body() 的形态由 Content-Type 决定:不同 Content-Type 影响请求体的解析方式。
  2. @Param()@Query() 独立于 Content-Type:它们只处理 URL 路径和查询参数。
  3. 文件上传需特殊处理:使用 multipart/form-data 时,需结合文件拦截器(如 multer)和 @UploadedFile()
http://www.dtcms.com/a/402009.html

相关文章:

  • 网站数据库模版wordpress加下载链接
  • 河北建设官方网站媒体发稿
  • 成都建站培训能和实体彩票店和做的彩票网站
  • 做海鲜代理在什么网站中国纪检监察报范耀庚
  • 做网站运营有前途吗网站模板下载破解版
  • 专业制作公司网站公司建设银行徐州分行网站
  • 网站建设服务采购方案淘宝运营可以自学吗
  • 网站百度权重上海外贸网站推广公司
  • 网站建设模板是什么意思肥东房产网
  • 网站开发建设步骤文创产品设计包括哪些方面
  • 网站建设找天宇智能个人网站免费注册
  • 网站商城建设费用实木餐桌椅移动网站建设
  • 免费的黄金网站有哪些苏州网站建设搜q479185700
  • 怎么在自己的网站做淘宝客随州网站设计开发服务
  • 网站维护中要多久才能重新进入wordpress 搬瓦工迁移
  • 淄博网站建设 百度知道成都地区网站开发成本
  • 万江网站制作亚马逊店铺网站建设费用
  • 建c2c网站厦门网红
  • 成都电商网站开发马鞍山网站建设咨询电
  • 教育网站网址英迈寰球网站建设
  • 网站架构建设wordpress彩色
  • 项目外包网站怎么提高网站访问量
  • 一个网站开发团队中国交通建设集团有限公司地址
  • 深圳网络公司做网站河南郑州房产网
  • 公司网站建设费属于什么费用wordpress免费汉化主题
  • 网站有源代码如何做seo专门做ppt的网站
  • 前端静态网站模板下载中国企业公示信息网官网
  • 微网站建设目的潍坊百度推广优化
  • 网站建设商城制作软件开发具体流程
  • 莱芜网络推广公司提供防城港seo公司