Guide
获取
Nitro 提供了内置的 fetch API,可用于从服务器端点或其他来源获取数据。它是基于 unjs/ofetch 构建的。
使用方法
在你的处理程序中,只需调用 $fetch
函数来发起请求。响应将自动解析。
路由处理程序
export default defineEventHandler(async (event) => {
const data = await $fetch('https://ungh.cc/orgs/unjs/repos')
return data
})
你可以向 $fetch
函数传递一个泛型类型,以获得更好的类型推断。
路由处理程序
import { Repo } from '~/types'
export default defineEventHandler(async (event) => {
const data = await $fetch<Repo[]>('https://ungh.cc/orgs/unjs/repos')
return data
})
你可以向 $fetch
函数传递许多选项,如方法、头部、请求体、查询等。
路由处理程序
import { Repo } from '~/types'
export default defineEventHandler(async (event) => {
const data = await $fetch<Repo[]>('https://api.github.com/markdown', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: {
text: 'Hello **world**!'
}
})
return data
})
有关 $fetch
函数使用的更多信息,请参阅 unjs/ofetch 文档。
服务器内获取
你还可以使用 $fetch
函数向其他处理程序发起内部请求。
路由处理程序
export default defineEventHandler(async (event) => {
const data = await $fetch('/api/users')
return data
})
实际上,并不会发起 fetch 请求,而是直接调用处理程序,这得益于 unjs/unenv。这对于避免 HTTP 请求开销非常有用。