我目前正在做一个Next.js项目,我遇到了一个新的路由处理程序功能的问题.我试图在客户端组件中处理来自表单的POST请求,但一直收到404错误.

以下是我的项目的 struct :

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 (Not Found).

我已经判断了Next.js文档,据我所知,我正确地遵循了路由处理程序的约定.但我一定错过了什么,因为它不起作用.

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

推荐答案

import { useState } from 'react';

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

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

Javascript相关问答推荐

JavaScript替换子 node 导致它们更改为[对象HTMLTable SectionElement]

如何比较嵌套对象的更改并创建更改报告

如何在不使用类型化数组的情况下将32位浮点数按位转换为整值?

reaction useEffect KeyDown for each 条目配音输出

TypScript界面中的Infer React子props

类型自定义lazy Promise. all

在JavaScript中声明自定义内置元素不起作用

将2D数组转换为图形

react—router v6:路由没有路径

为什么这个JS模块在TypeScript中使用默认属性导入?""

如何粗体匹配的字母时输入搜索框使用javascript?

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

如何添加绘图条形图图例单击角形事件

在286之后恢复轮询

Javascript json定制

制作钢琴模拟器,并且在控制台中不会执行或显示该脚本

我可以使用使用node.js创建的本地主机来存储我网站上提交的所有数据吗?没有SQL或任何数据库.只有HTML语言

未捕获的运行时错误:调度程序为空

使用jQuery find()获取元素的属性

图表4-堆叠线和条形图之间的填充区域