---
title: "Node.jsレンダリングエンジン"
slug: "node-js-rendering-engine"
abstract: "サーバーサイドではReact、Angular、Vue JSSアプリをSitecore制御のレンダリングエンジンでレンダリングできます。"
---
# Node.jsレンダリングエンジン

Node.jsレンダリングエンジンは、Sitecore Content Management (CM)サーバー上で動作するnode.jsインスタンスを使い、JavaScriptレンダリングSDK(JSS)で構築したアプリケーションをレンダリングします。本番環境で [統合モード](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/start-a-jss-app-in-integrated-mode.html "Start a JSS app in integrated mode") を使用する場合、node.jsインスタンスはContent Delivery(CD)サーバー上で動作しなければなりません。

> !注Node.jsレンダリングエンジンはJSSでNext.jsやASP.NETレンダリングSDKアプリケーションでは使用できません。

## 建築の概要

ASP.NETおよびSitecore MVCインフラは拡張可能で、カスタムJavaScriptレンダラーを接続することも可能です。

ブラウザがページリクエストを送信すると、JavaScriptレンダラーはJavaScript束とレイアウトサービスのJSON形式データをASPを通じてnode.jsに渡します.NET NodeServicesNode.jsはHTML文字列を含む応答を返します。

![Server-side rendering request-response flow with the Node.js rendering engine](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/hd/19/sitecore-headless-development/images/server-side-rendering.png)

ルートに対応するページレベルの項目には、従来のプレゼンテーション詳細が設定されていることが期待されます。

![Presentation details on page-level items](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/hd/19/sitecore-headless-development/images/layout-details.png)

前の画像の/sitecore/templates/Foundation/JavaScript Services/JSS Layoutテンプレートに基づくレイアウトを用いると、JSS AppJSSアプリケーション用に設定されたレンダリングエンジンを用いてHeadless Servicesによるレンダリングをトリガーします。この場合、レイアウトはインジケーターとしてのみ機能し、空のRazorビューを指し示します。WelcomeRenderingは、/sitecore/layout/renderingsの下で定義される型React JavaScript Renderingの実在のSitecoreレンダリングアイテムです。

サーバーバンドルでは、JSSアプリケーションがエクスポートしてrenderView関数を呼び出し、応答を消費してアプリケーションの静的レンダリングを生成します。この関数に入力されたデータはJSONフォーマットを保つために二重エンコードされており、使用前にJSON.parse() で解析する必要があります。

## Node.jsレンダリングエンジンの長所と短所

*Pros*

-   設定は簡単です。Sitecoreサーバーに node.js をインストールし、ノード実行ファイルを PATHに追加します。
-   node.jsインスタンスを手動で管理する必要はありません。
-   内蔵プーリング。

*Cons*

-   node.jsの起動、プロファイリング、デバッグなどのカスタマイズオプションは限られています。
-   プーリングやクラスタリングのコントロールは限られています。
-   node.jsはSitecoreサーバーにインストールする必要があります。
-   JSSアプリのアーティファクトをSitecoreサーバーにデプロイする必要があります。
-   Next.jsやASP.NET Coreでは使用できません