节点中间件
Qwik City 节点中间件允许您将 Qwik City 连接到使用通用中间件功能的 Node.js 服务器。一些 Node 服务器包括
安装
要集成 node
适配器,请使用 add
命令
- 对于 Express
npm run qwik add express
- 对于 Fastify
npm run qwik add fastify
生产构建
要构建用于生产的应用程序,请使用 build
命令,此命令将自动运行 npm run build.server
和 npm run build.client
npm run build
开发服务
要部署用于开发的应用程序
npm run serve
生产部署
由于您选择了 Node,因此您现在可以自行操作,在运行 npm run build
后
- 将创建
dist
文件夹,其中包含所有静态文件。 - 将创建
server
文件夹,其中包含所有节点服务器文件。
为了部署服务器,您需要在您选择的服务器中运行 server/entry.[server].js
文件,其中 [server]
可以是 express 或 fastify。
正确配置 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.tsx
或 src/entry.[server].tsx
中的 createQwikCity()
选项中设置 checkOrigin: false
entry.preview.tsx
// ...
const { router, notFound, staticFile } = createQwikCity({
render,
qwikCityPlan,
manifest,
checkOrigin: false,
});
// ...