1

Node.jsを使ってメインメニュー(ナビゲーション)を作成しました。Express のテンプレート エンジンとして Jade を使用しました。メニューは純粋な HTML と CSS で作成されます。

Node.js は、URL を介してメニューを提供することを目的としています。このメニューを既存の Web アプリケーションに組み込みたいのですが、Node.js で提供する必要があります。私は自分のwebsite.htmlで次のようなことを考えました:

<body>
  <!-- begin: include main menu -->
  <script type="text/javascript" src="http://127.0.0.1:3000/menu"></script>
  <!-- end: include main menu -->
  the rest of the application/website
  ...
</body>

ルーティングメカニズムで次のコードを使用して、HTML を Web サイトに渡すように動作させましたが、これは本当に汚いと思います。

res.send("document.write('SOME_HTML_GOES_HERE')");

しかし、views/menu.jade を HTML スニペットとしてwebsite.htmlに戻す必要があります。私はすでにHTMLサイト全体を返しました:

res.render('index', { title: 'Express & Jade' });

テンプレートメカニズムを使用して Node によって配信される非 Node.js アプリケーションにメニューが読み込まれるようにするにはどうすればよいですか?

4

1 に答える 1

0

node.jsメニューを含めるには、むしろiframeを使用する必要があります。ExpressとJadeによってレンダリングされたHTMLを含めることができます。

<iframe src="http://127.0.0.1:3000/menu"></iframe>

そうは言っても、ポート80からすべてのWebサイトにサービスを提供するようにしてください。多くのユーザーはポート3000にアクセスできません。

node.js(ポート3000)でWebサイトをホストしていて、たとえばApache(ポート80)である場合は、両方の前にプロキシをデプロイしてみてください。これを行うためにHAProxyを使用しました。私の場合、プロキシはポート80、Apacheは8000、node.jsは3000で実行されます。リクエストをnode.jsまたはApacheにリダイレクトする簡単なルールがあります。

于 2013-01-24T16:03:37.997 に答える