3

MVC パターン (テンプレートと PHP クラス) に基づくフォーラム ソフトウェアを使用しています。ページは次のようになります: domain.com/index.php?page=Test

node と now.js を使用して、1 つのページ (domain.com/index.php?page=Chat) にチャットサーバーをセットアップしたいと考えています。ここで問題が発生しました: チャット サーバーが index.php?page=Chat で動作する必要があることをサーバー側のコードに伝える方法 明らかに、そのようなことはできません:

fs.readFile('index.php?page=Chat')

そのようなURLでノードサーバーをセットアップする方法はありますか? ありがとう!

4

2 に答える 2

3

node.jsについてもう少し深く掘り下げます。ノード自体Webサーバーであるため、ルーティングとサーバー構成がどのように機能するかについて少し学ぶ必要があります。基本的に、ポート80で着信するものはすべて、(おそらく)Apacheサービスによってリッスンされます。ApacheはURIを調べて、実行するアプリケーションのスクリプトを決定し、コードを実行してユーザーに送信するWebページを生成するphpプロセスを開始します。

だからあなたが見るとき:

domain.com/chat

vs

domain.com/index.php?page=Chat

これは、Apacheが「ねえ、あなたは'/ chat'を/index.php?page=Chatとして読み取るように設定したので、そのスクリプトを起動します」と言っています。

Node.jsは、ApacheとPHPの両方を1つにまとめたようなものです。リクエストを処理し、ページを作成します。したがって、リクエストが着信したときにnode.jsとApacheがお互いに足を踏み入れることになります。両方のアプリケーションがポート80でリッスンするようにするには、次のようなユーザーを使用する必要があります。

https://github.com/nodejitsu/node-http-proxy

このノードモジュールは、未処理のサーバーリクエストをApacheに転送します。これにより、nodejs / apache+phpアプリケーションを混在させることができます。

テンプレート作成の限りでは、phpテンプレートとjavascriptテンプレートは完全に異なる言語で構築されているため、混在させることはできません。だから、あなたはほとんど運が悪いです。Nodeには、非常に豊富なテンプレートエンジンリストがあります。そのうちのいくつかは、使用しているものとほぼ同じ構文を持っている可能性が高いため、移植は簡単です。

https://github.com/joyent/node/wiki/modules#wiki-templating

これがあなたの質問に答えることを願っています。コメントしたように、私はまだiFrameを使用し、ノードを別のポートに配置し、2つのアーキテクチャをクリーンで分離した状態に保ちます。または、チャットサービスを使用して、まったく別のアプリケーションを設定する必要はありません。あなたが学びたいのでなければ、その場合は、夢中になります。:)

于 2012-06-12T13:55:09.283 に答える
-1

ポート8080でノードサーバーを実行でき、クライアント側のjsを通常のjavascriptとして任意のビューファイルに含めることができます。

于 2013-04-15T15:55:41.277 に答える