节点中间件

Qwik City 节点中间件允许您将 Qwik City 连接到使用通用中间件功能的 Node.js 服务器。一些 Node 服务器包括

安装

要集成 node 适配器,请使用 add 命令

npm run qwik add express
npm run qwik add fastify

生产构建

要构建用于生产的应用程序,请使用 build 命令,此命令将自动运行 npm run build.servernpm run build.client

npm run build

开发服务

要部署用于开发的应用程序

npm run serve

生产部署

由于您选择了 Node,因此您现在可以自行操作,在运行 npm run build

  • 将创建 dist 文件夹,其中包含所有静态文件。
  • 将创建 server 文件夹,其中包含所有节点服务器文件。

为了部署服务器,您需要在您选择的服务器中运行 server/entry.[server].js 文件,其中 [server] 可以是 expressfastify

正确配置 ORIGIN 环境变量非常重要,它用于检查 CSRF 攻击。来源必须与客户端应用程序的来源匹配。

例如,如果您计划将您的应用程序部署到 https://example.com/app,那么您需要将 ORIGIN 环境变量设置为 https://example.com

ORIGIN=https://example.com node server/entry.express

您可以查看 此处如何使用 Docker 部署

CSRF 防护

默认情况下,所有 Qwik City 应用程序都针对 CSRF 攻击 提供保护,适用于所有 POST、PATCH、DELETE 表单提交。

此保护默认启用,这就是您在将应用程序部署到生产环境时需要设置 ORIGIN 环境变量的原因。

如果您想禁用 CSRF 防护,可以在 src/entry.preview.tsxsrc/entry.[server].tsx 中的 createQwikCity() 选项中设置 checkOrigin: false

entry.preview.tsx
// ...
const { router, notFound, staticFile } = createQwikCity({
  render,
  qwikCityPlan,
  manifest,
  checkOrigin: false,
});
// ...

贡献者

感谢所有帮助改进此文档的贡献者!

  • adamdbradley
  • manucorporat
  • mousaAM
  • reemardelarosa
  • mhevery
  • Craiqser
  • mrhoodz