如何处理next.js中的发布请求?

我想POST使用next.js在我的api文件夹中设置一条路由,然后将数据发送到该路由,但是我无法解析该数据以将其实际保存到数据库中。POST在next.js中处理路由的最佳方法是什么特别是解析JSON格式的数据

缺口

要使POST请求在Next.js API路由中工作,您可能需要做三件事。

  • 将方法限制为 POST
  • 使用JSON.parse()解析JSON在路线
  • 向后端发送请求

API路线

默认情况下,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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Next.JS:如何处理getInitialProps中的错误?

来自分类Dev

如何处理 next.js 路由中的尾部斜杠?

来自分类Dev

如何处理 node.js 请求中的 URI 错误?

来自分类Dev

我应该如何处理Next js中的新版本?

来自分类Dev

如何处理fetch()中的错误请求

来自分类Dev

如何处理Twisted中的POST请求?

来自分类Dev

如何处理HEAD请求?

来自分类Dev

如何处理Google Cloud端点中的发布请求?

来自分类Dev

如何在单页 Web 应用程序中处理 node.js 中的“发布”请求

来自分类Dev

在Lua中,如何处理?

来自分类Dev

如何处理XSLT中的处理指令

来自分类Dev

如何处理logstash中的http发布文件-逐行?

来自分类Dev

node.js如何处理同时的http请求?

来自分类Dev

Node.js服务器如何处理请求?

来自分类Dev

Jasmine 2.0如何处理Ajax请求

来自分类Dev

flask如何处理并发请求?

来自分类Dev

如何处理来自请求主体的图像

来自分类Dev

如何处理冲突以响应广播请求?

来自分类Dev

我该如何处理此请求?

来自分类Dev

Nginx乘客如何处理并发请求

来自分类Dev

如何处理html对PERL的POST请求

来自分类Dev

在视图中如何处理django请求?

来自分类Dev

如何处理包含正斜杠的请求?

来自分类Dev

异步请求后如何处理条件

来自分类Dev

postgres 如何处理并发请求?

来自分类Dev

如何处理连续的 GET 请求?

来自分类Dev

如何处理来自jquery中ajax请求的204响应

来自分类Dev

如何处理PUT请求中的“更改原因”?

来自分类Dev

如何处理多个在php中写入文件的请求?