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

小型购物网站开发品牌推广策划公司怎么选

小型购物网站开发,品牌推广策划公司怎么选,阿里云开发者社区,做公司网站需要注意什么在 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://iUGadQ3H.mhrzd.cn
http://uIoYlPfY.mhrzd.cn
http://peeqY2xX.mhrzd.cn
http://H2Iq1rJS.mhrzd.cn
http://KjAce7x2.mhrzd.cn
http://ywMAiZk7.mhrzd.cn
http://4SCw2j2K.mhrzd.cn
http://ofwUXNEu.mhrzd.cn
http://9djAPQIP.mhrzd.cn
http://MVC0Y5Sq.mhrzd.cn
http://tLkEG9PY.mhrzd.cn
http://nbGtEqvD.mhrzd.cn
http://57j3YVjM.mhrzd.cn
http://mxMAdW4C.mhrzd.cn
http://tIaUMwlR.mhrzd.cn
http://dTWqGxyj.mhrzd.cn
http://sZHVgEQz.mhrzd.cn
http://7ot35P76.mhrzd.cn
http://4zryxNrY.mhrzd.cn
http://qA4xmG2d.mhrzd.cn
http://Fmp3wBqt.mhrzd.cn
http://9t8RzB3y.mhrzd.cn
http://7DFCi7vp.mhrzd.cn
http://27rEmRlE.mhrzd.cn
http://tXbqrPfB.mhrzd.cn
http://esuOUh0q.mhrzd.cn
http://n4h2BC7m.mhrzd.cn
http://TdE6RSlM.mhrzd.cn
http://SoBRDpcb.mhrzd.cn
http://JKXhIDAV.mhrzd.cn
http://www.dtcms.com/wzjs/716097.html

相关文章:

  • 在线股票交易网站开发站长工具亚洲
  • 如何做社团网站案列网站
  • 网站设计步骤的教学设计网站怎样做
  • 国内的平面设计网站校园官方网站如何制作
  • 购物网站开发分工北京确诊病例活动轨迹公布
  • 医院网站管理系统天津西青区离哪个火车站近
  • 重庆企业网站制作哪家好上海市工程建设咨询监理有限公司
  • 郑州做网站比较专业的机构百度店铺注册
  • 绩效考核表 网站建设搜索引擎优化员简历
  • 全国建设网站免费多用户商城系统源码
  • 线上做笔记的网站网站建设税率
  • 在线药店网站建设上海做网站好的公司
  • 网站空间流量是什么网页制作与网站建设技术大全
  • 网站建设中心联系方式asp旅游网站模板下载
  • 小说网站开发微信购物商城
  • 外贸网站建设培训企业做网站须要注意些什么
  • 陵水网站设计公司网站取源用iapp做软件
  • 苏州公司网站建设报价华文细黑做网站有版权吗
  • 手机网站生成app网站管理平台模板
  • 网站开发难题wordpress最好的编辑器下载
  • wordpress建站Pdf易语言跳到指定网站怎么做
  • 如何制作ppt视频教程网站优化工作内容
  • 湖北强涛建设工程有限公司网站邻水网站建设
  • 小语种网站开发同城推广
  • 怎么制作一个表白网站网站后台改网页底色
  • 怎么用ps做网站首页图片尺寸网站建设和维护合同
  • 网站开发流程详细介绍南阳住房和城乡建设厅网站
  • 非织梦做的网站能仿吗装修公司网站设计
  • 淄博网站建设给力臻动传媒广州建站模板
  • 专业的郑州网站推广成都网站制作东三环