Maison > Questions et réponses > le corps du texte
J'utilise nextJS avec le répertoire APP et je suis confronté à ce problème lors d'une requête GET...
J'ai la fonction suivante pour obtenir des projets de mon /project Route.ts.
On dirait que cela ne déclenche pas la fonction GET dans mes routes.ts
console.log("in GET /projects") ne se déclenche jamais et j'obtiens une erreur JSON inattendue à la fin.
Cependant, si j'accède à "http://localhost:3000/api/project" dans le navigateur, la fonction GET est activée dans mon routes.ts et je récupère JSON...
Merci pour votre aide, je travaille sur ce problème depuis un moment...
export const projectsGet = async () => { const res = await fetch("http://localhost:3000/api/project", { method: "GET", headers: { "Content-Type": "application/json", }, }); console.log(res, 'before') //triggers const data = await res.json() // error: Unexpected end of JSON input console.log(data, 'after') // does not trigger return data };
Voici l'itinéraire de mon projet, situé dans /api/project/route.ts. J'ai une route POST dans le même fichier qui crée un projet et fonctionne bien...
export const GET = async () => { console.log("in GET /projects"); //never triggers unless i visit the URL in browser const user = await getUserFromCookie(cookies()); const projects = await db.project.findMany({ where: { ownerId: user?.id, }, include: { tasks: true, }, }); const filteredProjects = projects.filter((project) => { return project.deleted === false; }); return NextResponse.json(filteredProjects); };
P粉1357999492024-03-29 18:24:48
Je pense que vous devriez renvoyer json sous cette forme dans `/api/project/route.ts.
export async function GET(){ console.log("in GET /projects"); const user = await getUserFromCookie(cookies()); const projects = await db.project.findMany({ where: { ownerId: user?.id, }, include: { tasks: true, }, }); const filteredProjects = projects.filter((project) => { return project.deleted === false; }); return new Response(JSON.stringify(filteredProjects)); };