Routeur d'application bêta NextJS : la requête utilisant la récupération échoue mais fonctionne correctement dans le navigateur
P粉141035089
P粉141035089 2024-03-28 21:44:56
0
1
256

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粉141035089
P粉141035089

répondre à tous(1)
P粉135799949

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));
};
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!