post().then(res=>res.json().then(json))是怎样传递参数的,在后端是如何承接参数的?
时间: 2024-03-13 13:46:04 浏览: 248
`post().then(res=>res.json().then(json))` 是 JavaScript 中使用 Fetch API 发起 POST 请求并接收响应结果的一种常见写法。
在这个写法中,我们使用 `post()` 方法发起 POST 请求,然后通过 `then()` 方法来处理响应结果。具体来说,我们首先使用 `then()` 方法来获取服务器返回的响应对象 `res`,然后再使用 `res.json()` 方法将响应体解析为 JSON 数据,并将解析结果传递给下一个 `then()` 方法。这样,在第二个 `then()` 方法中,我们就可以直接访问解析后的 JSON 数据,进行进一步的处理。
在后端,我们可以使用 Node.js 和 Express 来处理这个 POST 请求。具体来说,我们可以使用 `body-parser` 中间件来解析请求体,然后从中获取 POST 请求中传递的参数。
以下是一个简单的示例代码:
前端代码:
```
fetch('/api/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '张三',
age: 18
})
})
.then(res => res.json())
.then(json => console.log(json))
```
上述代码中,我们向 `/api/users` 接口发起了一个 POST 请求,并传递了一个 JSON 参数 `{ "name": "张三", "age": 18 }`。
后端代码:
```
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.post('/api/users', (req, res) => {
const name = req.body.name
const age = req.body.age
// 处理接收到的 name 和 age 参数
res.json({ message: 'Received', name, age })
})
app.listen(3000, () => {
console.log('Server started on port 3000')
})
```
上述代码中,我们使用了 Express 框架和 `body-parser` 中间件来处理请求。当接收到来自 `/api/users` 接口的 POST 请求时,我们会在后端获取到请求体中的 `name` 和 `age` 参数,并进行处理,最后将处理结果返回给前端。在这个示例中,我们将处理结果封装成了一个 JSON 对象,并使用 `res.json()` 方法将其返回给前端。
阅读全文