javascript - Next.js 路由处理程序出现 404 错误

标签 javascript reactjs typescript next.js

我目前正在开发 Next.js 项目,并且遇到了新的路由处理程序功能的问题。我尝试在客户端组件中处理来自表单的 POST 请求,但不断收到 404 错误。

这是我的项目的结构:

app/
  api/
    route.ts
  Ingresos/
    page.tsx
  favicon.ico
  globals.css
  layout.tsx
  page.tsx
components/
  enviarIngresosCliente.tsx
  navbar.tsx
  obtenerIngresosServer.tsx
pocketbase_0.16.10_windows_amd64/
  pb_data/
    data.db
    logs.db
  pb_migrations/
    1690143617_created_ingresos.js
    1690143631_updated_ingresos.js
  CHANGELOG.md
  LICENSE.md
  pocketbase.exe
public/
  next.svg
  vercel.svg
.gitignore
next-env.d.ts
next.config.js
package-lock.json
package.json
postcss.config.js
README.md
tailwind.config.js
tsconfig.json

在我的客户端组件 (enviarIngresosCliente.tsx) 中,我有一个表单向 /app/api/ingresos 发送 POST 请求:

'use client'

import { useState } from 'react';

export default function EnviarIngresos() {
  // ...state setup...

  return (
    <form action="/app/api/ingresos" method="POST">
      {/* form fields... */}
    </form>
  );
}

在我的路由处理程序 (app/api/route.ts) 中,我正在处理如下 POST 请求:

import PocketBase from 'pocketbase';

export async function POST(request: Request) {
  const { fuente, cantidad, fecha } = await request.json();

  const pb = new PocketBase('http://127.0.0.1:8090');
  await pb.collection('ingresos').create({
    fuente,
    cantidad,
    fecha,
  });

  return new Response('Ingreso created successfully', { status: 200 });
}

但是每当我提交表单时,都会收到 404 错误。错误消息为GET http://localhost:3000/app/api/ingresos 404(未找到)

我已经检查了 Next.js 文档,据我所知,我正确遵循了路由处理程序的约定。但我一定错过了一些东西,因为它不起作用。

有人知道可能出了什么问题吗?任何帮助将不胜感激!

最佳答案

import { useState } from 'react';

export default function EnviarIngresos() {
  // ...state setup...

  return (
    <form action="/api/ingresos" method="POST">
      {/* form fields... */}
    </form>
  );
}

关于javascript - Next.js 路由处理程序出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76774844/

相关文章:

javascript - Vue.js 2.0 Laravel 5.4 将对象传递给应用程序并跨组件全局使用它

javascript - 如何映射外部 JSON 数据?

typescript - 更新 vscode 扩展中的 editor.selections

angular - 获取 indexedDb 配额存储信息

angular - 最简单的 Angular 轮播

javascript - 你可以使用电话或申请新的吗?

Chrome 中没有行号的 Javascript 错误

javascript - 这可以被视为安全漏洞吗?

javascript - 编写一个 React hook 来处理鼠标单击时的多个 div 可见性

javascript - React 映射对象,定位错误