【发布时间】:2021-11-09 11:27:09
【问题描述】:
所以我正在向我的后端发送一些表单数据,包括图像。为了进一步混淆/保护我的后端 - 我了解到利用 NextJS api 是一种很好的做法(将调用从客户端发送到 NextJS 服务器/api,NextJS api 充当中间人并将数据发送到后端 api)。我也在使用 Auth0 - 获取令牌的最安全方法是通过 NextJS api 本身。
当我直接从客户端向后端进行 api 调用时,我在读取后端数据时没有问题。但是,我在从 NextJS api 上的请求中获取数据(主要是图像/文件)以重新打包并发送到我的实际后端时遇到问题。我也不能在 NextJS api 中使用 FormData,所以我很困惑。
客户端提交功能:
const handleSubmit = async (e) => {
e.preventDefault();
const formData = new FormData();
formData.append("title", brand.name);
formData.append("slug", brand.slug);
formData.append("bio", brand.bio);
formData.append("logo", brand.logo[0]);
const response = await fetch("/api/brands", {
method: "post",
body: formData,
});
});
NextJS api 代码(不起作用 - 我完美地获得了访问令牌,它只是发送我卡住的表单数据/文件)
import { getAccessToken, withApiAuthRequired } from "@auth0/nextjs-auth0";
export default withApiAuthRequired(async function products(req, res) {
const { accessToken } = await getAccessToken(req, res, {});
const response = await fetch("http://localhost:5000/brands", {
method: "post",
headers: {
Authorization: `Bearer ${accessToken}`,
},
body: {
title: req.body.title,
slug: req.body.slug,
bio: req.body.bio,
logo: req.file,
},
});
const products = await response.json();
res.status(200);
});
【问题讨论】:
标签: node.js reactjs upload next.js