如何在NextJS中读取FormData [英] How to read FormData in NextJS

查看:0
本文介绍了如何在NextJS中读取FormData的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想读一下Fetch的身体。以下是我发送的内容:

fetch('/api/foo', {
  method: 'POST',
  body: new FormData(formRef.current),
});

现在我只需要解析正文。但我不知道该怎么做。我不能在服务器端使用FormData,因为它显示ReferenceError: FormData is not defined。而且我也不能在客户端使用forEachLike。

我应该做什么?

export default function sendMail(req: NextApiRequest, res: NextApiResponse): void {
    // console.log(req.body instanceof FormData);
    // req.body.forEach(console.log);
    console.log(req.body['name']);
    res.status(200).json({});
}

推荐答案

您可以使用Foradable

npm install formidable

然后在您的代码中使用

import { NextApiRequest, NextApiResponse } from 'next'
import formidable from 'formidable'

//set bodyparser
export const config = {
  api: {
    bodyParser: false
  }
}

export default async (req: NextApiRequest, res: NextApiResponse) => {
  const data = await new Promise((resolve, reject) => {
    const form = new formidable()

    form.parse(req, (err, fields, files) => {
      if (err) reject({ err })
      resolve({ err, fields, files })
    }) 
  })

  //return the data back or just do whatever you want with it
  res.status(200).json({
    status: 'ok',
    data
  })
}

这篇关于如何在NextJS中读取FormData的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆