我在
/api/metadata
有一个端点,我想在另一个端点中获取它,如下所示:
export const get: RequestHandler = async (event) => {
try {
const res = await fetch(event.url + '/api/metadata')
const body = await res.json()
return {
body
};
} catch (error) {
console.error(error);
return {
status: 500
};
}
};
但是我收到以下错误:
FetchError: request to http://localhost:3000/sitemap.xml/api/metadata failed, reason: connect ECONNREFUSED ::1:3000
当我将获取位置更改为
http://0.0.0.0:3000/api/metadata
时,获取就会正常工作。我是否可以在不使用 process.env.NODE_ENV
(dev
中的 $app/env
)条件的情况下正确处理此获取请求?
我认为最好将
/api/metadata
端点的主要逻辑包装到自己的模块中,然后在两个端点中导入该模块。所以你的代码看起来像这样(在两个端点):
import { getMetadata } from '$lib/metadata.js'
export const get: RequestHandler = async (event) => {
try {
// const res = await fetch(event.url + '/api/metadata')
// const body = await res.json()
const body = getMetadata();
return {
body
};
} catch (error) {
console.error(error);
return {
status: 500
};
}
};
event.url
包含完整的URL(带有路径名、查询字符串等)。
event.url.origin
:
const res = await fetch(event.url.origin + '/api/metadata')