小编Vla*_*rzb的帖子

从 Next.js 13 服务器组件中的 API 路由获取数据

我目前正在学习 Next.js 13,并尝试从 PocketBase 数据库中获取数据以显示在表格中。我创建了一个连接到数据库并检索数据的 API 路由。但是,我在服务器组件中获取此数据时遇到问题。

这是我的项目的结构:

app/
  api/
    ingresos/
      route.ts
  components/
    tablaIngresosCliente.tsx
  ingresos/
    page.tsx
  ...
Run Code Online (Sandbox Code Playgroud)

在 中route.ts,我连接到 PocketBase 数据库并获取数据:

app/
  api/
    ingresos/
      route.ts
  components/
    tablaIngresosCliente.tsx
  ingresos/
    page.tsx
  ...
Run Code Online (Sandbox Code Playgroud)

在 中tablaIngresosCliente.tsx,我尝试从 API 路径获取数据:

// app/api/ingresos/route.ts
import { NextResponse } from 'next/server';
import PocketBase from 'pocketbase';

export async function GET(request: Request) {
  const pb = new PocketBase('http://127.0.0.1:8090');
  try {
    const records = await pb.collection('ingresos').getFullList({
      sort: '-created',
    });
    return NextResponse.json(records);
    
  } catch (error) {
    console.error(error)
    return new …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs next.js next.js13

6
推荐指数
1
解决办法
8270
查看次数

错误:“仅允许在‘使用服务器’文件中导出异步函数”

layout.tsx我正在尝试在Next.js 13 的目录中使用app以使所有页面上都存在导航布局。我设法做到了,当用户注销/登录时,导航栏会发生变化,但问题是我必须刷新页面(F5)才能看到导航栏上的更改。我认为这个问题与缓存有关,这就是我尝试使用export const dynamic = 'force-dynamic'.

我还将客户端组件添加到服务器组件中,因为我认为这会是问题所在,但它并没有解决问题。我想用它export const dynamic = 'force-dynamic'来处理缓存,但现在我遇到了一个似乎无法解决的错误。我收到的错误消息是:

错误

Only async functions are allowed to be exported in a "use server" file.
Run Code Online (Sandbox Code Playgroud)

这是详细的错误跟踪:

./app/components/ClientInsideServerLayout.tsx
Error: 
  x Only async functions are allowed to be exported in a "use server" file.
   ,-[C:\Users\zantl\OneDrive\Documentos\GitHub\sssss\gestion-gastos-supabase\app\components\ClientInsideServerLayout.tsx:2:1]
 2 | 
 3 | import { getSessionStatus } from "../ServerActions/isUserLoggedIn";
 4 | import ClientLayout from "./ClientLayout"
 5 | export const dynamic = 'force-dynamic'
   : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 6 | 
 7 | …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs next.js supabase

4
推荐指数
1
解决办法
3602
查看次数

标签 统计

next.js ×2

reactjs ×2

javascript ×1

next.js13 ×1

supabase ×1

typescript ×1