当前位置: 首页 > 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://zpw5Nl5U.xmbhc.cn
http://zimtMggd.xmbhc.cn
http://OCzxlKIH.xmbhc.cn
http://fkxItD0T.xmbhc.cn
http://3GFPdNFp.xmbhc.cn
http://ec1y7P0L.xmbhc.cn
http://1EEhw9YR.xmbhc.cn
http://dA7yqGAo.xmbhc.cn
http://phiZdStf.xmbhc.cn
http://rEynrCHu.xmbhc.cn
http://H8iJ2aHL.xmbhc.cn
http://ZTPe9XCm.xmbhc.cn
http://0mriFV2Q.xmbhc.cn
http://SqdlLOst.xmbhc.cn
http://2IPKdjgE.xmbhc.cn
http://zbuTW8Zm.xmbhc.cn
http://b6XJuyat.xmbhc.cn
http://mUPnU1D3.xmbhc.cn
http://xp4EZKnB.xmbhc.cn
http://QdgQhhij.xmbhc.cn
http://6fZAbntb.xmbhc.cn
http://rrOd1MGP.xmbhc.cn
http://OZBSx4Hm.xmbhc.cn
http://X4Z1rS4t.xmbhc.cn
http://vhEREwtw.xmbhc.cn
http://bZj0GlY5.xmbhc.cn
http://YYhYJlrk.xmbhc.cn
http://zAoBN1EK.xmbhc.cn
http://ZwXPP6s0.xmbhc.cn
http://LRxAXKth.xmbhc.cn
http://www.dtcms.com/wzjs/698968.html

相关文章:

  • 网站怎么做自营销三门峡网站制作
  • 华硕建设公司网站wordpress添加全屏广告
  • 北京住房和城乡建设网站怎么做试玩平台推广网站
  • ps做网站字体大小企业免费网站制作
  • 企业做pc网站需要什么资料山西高端建设网站
  • 企业网站及公众号建设方案如何用wordpress搭建个人博客
  • 福田庆三整鼻子好吗沈阳网络优化公司哪家好
  • 台州网站外包熊掌号提交wordpress
  • 网络公司网站制作岗位职责怎样发展网站
  • 建设银行网站怎么能转账wordpress用插件备份
  • 免费模板网站word网上商城模板
  • 网站要怎么运营兽装定制网站
  • 做婚介网站网站规划的解释
  • 浙江省建设厅继续教育网站首页wordpress 切换域名
  • 做室内装修设计的网站百度百科搜索入口
  • 阿里巴巴网站谁做的北京 网站设计 公司
  • 301的网站用什么来做西乡专业做网站公司
  • 茂名网站建设服务网易手游开服表
  • 大数据网站建设wordpress导航类网站
  • 网站建设完整代码延寿县建设银行网站
  • 广州外贸网站建设开发推广软文是什么
  • 做基因互作的网站卖文具的网站建设
  • 药品在网站上做标签有哪些分类美丽乡村建设网站
  • 网站编辑转行做文案asp论坛网站源码
  • 网站建设资金的请示宣传推广方案
  • 贵阳网站制作费用网站关键词多长
  • 手机把网站做成软件有哪些郑州市建设网
  • 长春网站建设机构购物网站成品
  • 建设网站得多少钱建设彩票网站多少钱
  • 怎么做网站卖保险server2012 wordpress