post接口与get请求不同在于:它的参数一般是通过请求体来传递的。根据传递的参数的格式不同,分成三种情况:
-
传递普通键值对
-
传递form表单(涉及文件上传)
-
传递json
具体来说当content-type为x-www-form-urlencoded时,表示上传的普通简单键值对 。如果通过postman测试的话,对应的设置如下:
参考代码:
const express = require('express')
const app = express()
// -------------------使用中间件express.urlencoded()------------
//增强express的功能:把x-www-form-urlencoded 方式在请求体中传递的参数,自动收集到 req.body中
app.use(express.urlencoded());
app.post("/add",function(req,res){
// 可以通过req.body来获取post传递的键值对
res.json(req.body)
})
//接收普通键值对的参数
app.post('/api/addbooks', (req,res)=>{
console.log('req.body', req.body) //请求体
/* 使用 postman 测试结果:
{
"id": "1",
"book": "红楼梦",
"author": "xxx"
} */
//可以写自己的逻辑 链接数据库。把数据添加进去
res.send(req.body)
})
app.listen(8088, () => {
console.log('express启动了,在8088')
})