url param - 路径中参数
将参数写在 url 中
1
2
3
4
/users/:id
# /users/1
query string
通过 url 中 ?,后面的用 & 分隔的字符串传递数据
1
2
3
/users?name=cwy007&age=34
form-urlencoded
直接用 form 表单提交数据就是这种,和 query 字符串的区别是值放在了 body 里,然后,指定 Content-Type 为 application/x-www-form-urlencoded

- 表单的 get 提交是将数据拼成 query string 放在 url 后面
- 表单的 post 提交,直接用相同的方式把数据放在 body 里
通过 & 分隔的 form-urlencoded 的方式需要对内容做 url encode,如果传递大量的数据,比如上传 文件的时候,就不是很合适了,因为文件 encode 一遍太慢了,这时候可以用 form-data
form-data
form-data 分割线是 ------------------加数字

form-data 需要指定 Content-Type 为 multipart/form-data,然后,指定 boundary 分割线。 body 里面就是要哪个 boundary 分隔符分割的内容。 这种方式适合传输文件,而且可以传输多个文件。 但是多了一些只是用来分隔的 boundary,所以请求体会增大。
json
- form-urlencoded 需要对内容做 url encode
- form-data 需要加很长的 boundary
上面2中方式都有一些缺点,如果只传 json 数据,不需要用这两种。
可以直接指定 Content-Type 为 application/json就行:

nestjs 中相关的装饰器
- @Param()
- @Query()
- @Body()
- @UseInterceptors()
- @AnyFilesInterceptor()
- @UploadedFiles