Я не понимаю, что не так с моим кодом. Я читал и пробовал другие подобные вопросы, но они мне не помогли.
Есть ли кто-нибудь, кто может мне помочь?
Это мой маршрут.js
import dbConnect from "@/lib/dbConnect";
import User from "@/models/User";
import { NextResponse, NextRequest } from "next/server";
import type { NextApiResponse, NextApiRequest } from "next";
export async function POST(req: NextApiRequest) {
await dbConnect();
let data = await req.body;
console.info(data); //HERE ReadableStream { locked: false, state: 'readable', supportsBYOB: false } HERE
try {
const user = await new User(data);
await user.save();
return NextResponse.json({ user }, { status: 201 });
} catch (error) {
console.info("here 3");
if (error instanceof Error) {
return NextResponse.json(
{ error: error.message || "bilinmeyen bir hata" },
{ status: 500 }
);
} else {
return NextResponse.json(
{ error: "bilinmeyen bir hata" },
{ status: 500 }
);
}
}
}
Это моя просьба;
try {
const res = await fetch("http://localhost:3000/api/register", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
});
const dataRes = await res.json();
console.info("dataRes" + dataRes);
} catch (error) {
console.info(error);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш обработчик маршрута должен принимать тип Request вместо NextApiRequest.
export async function POST(req: Request) {
// ...
}
который затем позволяет вам читать тело так, как вы хотите, например, используя метод Request#json.
export async function POST(req: Request) {
// ...
let data = await req.json();
// ...
}
Информацию по этой теме можно найти в документации Next.js здесь.
P.S. вы также должны возвращать стандартные объекты Response вместо NextResponse, см. вышеупомянутую документацию.
Ты герой. Я так смущен созданием собственного API, используя ответ или следующий ответ, а не потому, что это первый раз, когда я пытаюсь закодировать конечную точку. Спасибо, теперь работает