Astro 适配器 API
Astro 设计得易于部署到任何云提供商的 SSR(服务端渲染)服务,该功能由适配器集成提供。
什么是适配器
Section titled 什么是适配器适配器是特殊的集成,它为服务器端渲染提供了入口。一个适配器做两件事。
- 使用仅限于主机的 API 来处理请求。
- 根据主机惯例配置构建
构建适配器
Section titled 构建适配器适配器是集成的一种,它可以做任何集成可以做的事情。
适配器 必须 在 astro:config:done
钩子中调用 setAdapter
API,像这样:
传入 setAdapter
的对象被定义为:
这些属性分别是:
- name:适配器的唯一名称,用于日志输出。
- serverEntrypoint:服务器端渲染入口。
- exports:当与
createExports
一起使用时,未命名导出数组(解释如下)。
服务端入口
Section titled 服务端入口Astro 的适配器 API 尝试与任何类型的主机一起工作,并有灵活的方式来配合主机 API。
一些无服务器主机希望你能导出一个函数,如 handler
:
在适配器 API 中,你通过在 serverEntrypoint
中的 createExports
来实现这一目标:
然后在集成中调用 setAdapter
的地方导出 exports
它。
有些主机希望你能自己启动服务器,例如通过监听一个端口。针对这些类型的主机,适配器 API 允许你导出 start
函数,它将在捆绑脚本运行时调用。
astro/app
Section titled astro/app该模块用于渲染通过 astro build
预构建的页面。Astro 使用标准的Request 和 Response 对象。有着不同的请求/响应 API 的主机应该在其适配器中转换为这些类型。
有以下几种方法:
app.render(request)
Section titled app.render(request)这个方法适合渲染匹配请求的 Astro 页面,并在 Promise 中返回 Response 对象。这也适用于不渲染页面的 API 路由。
app.match(request)
Section titled app.match(request)该方法用于确定请求是否适配 Astro 应用程序的路由规则。
你通常可以调用 app.render(request)
而无需使用 .match
,因为如果有 404.astro
文件,Astro 会自动处理 404 页面。如果你想以不同的方式处理 404,请使用 app.match(request)
。
使用 astro add
安装
Section titled 使用 astro add 安装用户可以使用 astro add
命令 轻松地在他们的项目中添加集成和适配器。如果你想让别人可以使用这个工具安装你的集成,在你的 package.json
中的 keywords
字段中添加 astro-adapter
:
在你将集成发布到 npm 后,即可运行 astro add example
安装包和 package.json
中指定的对等依赖。我们还将指导用户手动更新他们的项目配置。