Node 中介軟體

Qwik City Node 中介軟體可讓您將 Qwik City 連線至使用常見中介軟體功能的 Node.js 伺服器。部分 Node 伺服器包括

安裝

要整合 node adapter,請使用 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 應用程式都會針對所有 POST、PATCH、DELETE 表單提交受到 CSRF 攻擊的保護。

此保護預設為啟用狀態,這也是為什麼您需要在部署生產環境的應用程式時設定 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