我想POST
使用next.js在我的api文件夹中设置一条路由,然后将数据发送到该路由,但是我无法解析该数据以将其实际保存到数据库中。POST
在next.js中处理路由的最佳方法是什么。特别是解析JSON
格式的数据?
要使POST请求在Next.js API路由中工作,您可能需要做三件事。
POST
JSON.parse()
解析JSON在路线默认情况下,Next.js中的API路由支持所有类型的请求,包括GET,POST,DELETE等。因此,虽然不是必需的,但最好将路由限制为要支持的方法。
在您的情况下,如果只想支持POST
特定路由上的请求,则可以req.method
过滤掉非发布请求。
if (req.method !== 'POST') {
res.status(400).send({ message: 'Only POST requests allowed' })
return
}
要解析JSON,您可以使用JSON.parse()
。
const body = JSON.parse(req.body)
放在一起,您的API路由应如下所示:
// pages/route-name.js
export default function handler(req, res) {
if (req.method !== 'POST') {
res.status(400).send({ message: 'Only POST requests allowed' })
return
}
const body = JSON.parse(req.body)
// the rest of your code
}
最后,您需要将POST请求从您的前端代码发送到后端。您可能已经知道如何执行此操作,但是为了完整起见,请提及此内容。
fetch('/api/route-name', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(objectWithData),
})
fetch
顺便说一句,您无需担心跨浏览器与Next.js的兼容性。Next.js会在需要时自动添加一个polyfill 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句