SvelteKit:有没有办法在单个 +server.js 文件中创建多个 GET 端点?

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

这是我想要实现的一个示例...我想知道 sveltekit 中是否有类似的东西,而无需创建单独的文件来处理“GET_2”端点。

// +server.ts
export const GET: RequestHandler = async () => {
  // ...stuff
};


export const GET_2: RequestHandler = async () => {
  // ...stuff
};

typescript svelte sveltekit
2个回答
2
投票

据我所知,这是不可能的,

+server
文档仅指出,对于
GET
POST
PATCH
PUT
DELETE
的每个HTTP方法,都可以导出处理程序。

您可以通过使用查询参数然后委托给文件中的相应函数来解决这个问题。


0
投票

我知道这是一个老问题,但我有一个解决方法。您可以拥有一种 get 方法,但根据发送给它的参数运行不同的方法。例如,如果您想要一个用于 fetch 调用

//to hit get1
async function getReport() {
        const response = await fetch(`/api/delayreports?get=1`, {
            method: 'GET'
        });
    }

//to hit get2
async function getReport() {
        const response = await fetch(`/api/delayreports?get=1`, {
            method: 'GET'
        });
    }

然后在你的服务器上你可以运行 get 1

export async function GET({ url }) {

    const get = url.searchParams.get('get')

    if (get === 1) {
        console.log('you hit get 1')
    }
    if (get === 2) {
        console.log('you hit get 2')
    }
}

您可以为此使用许多不同的参数。我通常使用 id 来使用它,并说 if id != null then run function a else run function b.

© www.soinside.com 2019 - 2024. All rights reserved.