下面是我的nextjs路由的代码
import { NextRequest, NextResponse } from 'next/server';
export const config = {
runtime: 'edge',
};
export default async function POST(req: NextRequest): Promise<Response> {
const data = await req.formData();
console.log(data);
const file: File | null = data.get('file') as unknown as File;
if (!file) {
return NextResponse.json({ success: false });
}
return NextResponse.json({ success: true });
}
我试图在请求中发送一个文件与Content-type: multipart/form-data
,但它抛出错误,在未来的js API。我错过了什么?关于egde环境有什么我应该考虑的吗?我也试着把它改为node js环境,但错误仍然是一样的。
3条答案
按热度按时间xxb16uws1#
不知道这是否可以作为一个答案,但我正在寻找相同的解决方案,刚刚发现这个discussion,它解释说,
req.formData()
可以处理,只有当你使用下一个App Routes
,而不是Pages Routes
..老实说,我不打算改变我的项目的整个结构,所以我仍然在寻找一个解决方案,但如果它帮助你,那么有选择iqih9akk2#
您需要使用
req.json()
而不是req.formData
您的代码应该如下所示:
2q5ifsrm3#
检查
req.json()
函数是否正确解析表单数据。您可以在控制台中查看。