ノードミドルウェア
Qwik City のノードミドルウェアを使用すると、一般的なミドルウェア機能を使用する Node.js サーバーに Qwik City を接続できます。いくつかの 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 です。
CSRF攻撃に対するチェックに使用される ORIGIN
環境変数を正しく設定することが**非常に重要**です。オリジンは、クライアントアプリケーションのオリジンと一致する必要があります。
たとえば、アプリケーションを
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.tsx
または src/entry.[server].tsx
の createQwikCity()
オプションで checkOrigin: false
を設定できます。
// ...
const { router, notFound, staticFile } = createQwikCity({
render,
qwikCityPlan,
manifest,
checkOrigin: false,
});
// ...