Получение маршрута API Next.js 14 выдает ошибку 404, хотя я использую Route.ts

Я использую Next.js 14.2.3 и пытаюсь получить маршрут API /api/tmp из компонента chat.tsx, но выдается ошибка 404, хотя я использую route.ts. Почему?

Обновлено: Это потому, что chat.tsx является клиентским компонентом? Если да, то как я могу получить маршрут API в клиентском компоненте?

chat.tsx:

"use client";

export default function Chat() {
  /.../

  const test = await fetch("/api/tmp", {
    method: "GET",
  });

  /.../
}

route.ts:

import { NextResponse } from "next/server";

export async function GET(request: any) {
  return NextResponse.json({ message: "Hello World" }, { status: 200 });
}

Состав:

src
 |__app
     |__components
     |      |__chat.tsx
     |__hooks
     |__pages
     |    |__api
     |        |__tmp
     |            |__route.ts
     |__shared
     |__styles
     |__types
     |__layout.tsx
     |__page.tsx

Терминал:

GET /api/tmp 404 in 61ms

похоже, что каталог api/temp вложен внутри каталога страниц. Вы пробовали "/pages/api/tmp" в качестве конечной точки запроса на получение?

Sai 15.05.2024 21:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
332
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема :

Получение маршрута API Next.js 14 выдает ошибку 404, хотя я использую Route.ts

Причина :

Неправильный URL

Решение :

  • NextJS — это маршрутизатор на основе файловой системы, где папки используются для определения маршрутов.
  • NextJS использует имя папки в качестве URL-адреса, поэтому измените URL-адрес на /pages/api/tmp.
  • /api/tmp заставляет NextJS искать внизу app/api/tmp поэтому выдает 404
  • Если вы хотите, чтобы URL-адрес был /api/tmp, просто сохраните папку API в приложении (app/api).

Читать далее :

Если у вас есть какие-либо сомнения, оставьте комментарий (при необходимости я обновлю ответ)

Другие вопросы по теме