Astro 中的构建顺序由什么决定?

问题描述 投票:0回答:1

我正在使用 Astro 构建一个网站,在其中我在许多不同的页面中共享数据库数据。我在项目根目录中有一个

members.json.ts
文件,然后我从中获取数据:

let response = await fetch(`${Astro.url.origin}/members.json`)
let data: any = await response.json();

我似乎在 Astro 文档中找不到有关构建顺序的任何内容。当我从每个页面获取数据时,有什么方法可以确保我的

members.json.ts
文件已完成构建?或者还有其他首选方法吗?

javascript json build fetch astrojs
1个回答
0
投票

这被认为是一种反模式。您可以将

members.json.ts
API 抽象到一个单独的模块中,并导出一个函数(或任何您想要的)以在其他文件中使用,而不是通过请求传递数据,如下所示:

创建通用模块:

/src/members.ts
export function getMembers() {
  return { // member data }
}

使用模块:

/src/pages/members.json.ts
import { getMembers } from '../../members'

export async function GET() {
  return new Response(JSON.stringify(getMembers()))
}
/src/pages/index.astro
---
import { getMembers } from '../members'

const data = getMembers()
---
© www.soinside.com 2019 - 2024. All rights reserved.