0

私は単にURLを使っているのと同じようにnode.jsスクリプトをPHPと呼んでいます。htmlページからnodejsスクリプトを呼び出す

私は主にjsプログラマーなので、PHPを完全に使い切って、サーバー側のスクリプト用にノードを使用するのは素晴らしいと思います。

しかし、私は今、サーバーを作成関与まで見たチュートリアルなどのほとんどの...

私はちょうどwww.mysite.com/login.js代わりのように、古い方法でスクリプトを呼び出したいですwww.mysite.com/login.php

そして一度呼び出されると、スクリプトが返されるか、レンダリング用のページ、または単にjsonやその他のajax呼び出しのテキストが返されます。

可能ですか?私はちょうどwww.mysite.com/login.jsのように、古い方法でスクリプトを呼び出したい

+2

node.jsサーバーは設定が簡単で、必要な機能を提供します。 httpサーバーのチュートリアルを1時間半ほどかかりますが、そのように設定されている理由がわかります。 –

答えて

1

上記のCGIの方法と同様の別の可能性は、ありますが、モジュールを使用して(https://github.com/:このような何かsamcday/node-fastcgi-application)を、Node.jsに追加して、ApacheがFastCGIと通信できるFastCGIをサポートしています。

実際には両方のスタイルがブレンドされているため、NodeプログラムはApacheによって自動的に起動されますが、処理するリクエストがある限り、そのまま残ります。 addtypeを.htaccessに追加したdispatch.njsスクリプトを、ノードスクリプトとしてリダイレクトするルールを設定するだけで、stdinでリクエストを起動して処理し、結果をstdoutに送信するだけです。しかし、あなたは依然としてエクスプレスで提供されているルーティングが必要です。なぜなら、HTTP_REQUEST_URIを見ているだけなので、必要なページを特定するだけです。

もう1つの選択肢は、特定のシグネチャ(.njsで終わるような)と一致する場合、ノードが特定のポートでリッスンし、プロキシ要求をApacheから受信することです。

1

しかし、私は今、サーバーを作成関与まで見たチュートリアルなどのほとんどの...

www.mysite.com/login.phpの代わりに

これはnode.jsの動作です。サーバーを作成します。 PHPでは、チュートリアルの第一歩は、Apacheのインストールと設定(サーバーの作成)です。

PHP用語であなたの質問のequivelantは

は、私はあなたが(私は、最近のまたは将来の信じることができないのapache/nginxの/他のWebサーバ

をインストールせずにPHPスクリプトを実行することができますでしょうバージョンだけNode.jsのように、中に焼きWebサーバを含め!)

あなたはNode.jsのをインストールする必要があり、Webサーバー

を実行するノードを指示する必要があります

expressjsを使用すると、より合理的で使い慣れた設定ができます。コマンドラインでexpressを呼び出して、サーバーを足場に取り付けることができます。あなたはまだのNode.js(およびNPM)をインストールする必要があり

+0

はい、しかし、私の質問はより具体的には:apacheのような私のノードのスクリプト(すべてのモジュールで)私はPHPでするようにするpremadeサーバーがありますか? – Bakaburg

+0

@Bakaburgそれはnode.jsと呼ばれていますほかの人と同じようにnode.jsを使用してください。この "premadeサーバー"には価値がありません – Raynos

1

のNode.jsとPHPは、二つの異なるものです。

Node.jsは、「イベント駆動型I/Oサーバー側JavaScript環境」です。それが機能するとき、Javascriptはスクリプト言語として実行されず、RubyやPythonのように処理されます。サーバーを起動すると、コードが実行されます。

しかし、WebサーバーにPHPプロセッサモジュールがインストールされているため、PHPはWebサーバー上でスクリプト言語として実行されます。したがって、.phpファイルをスクリプトとして解釈するようにApacheサーバーが設定されているため、PHPスクリプトを.php拡張子で直接実行することができます。

つまり、node.jsを持つの大量のハックトリックがなければ、あなたがしたいことはできません。あなただけのJavaScript 代わり PHPのを使用したい場合

しかし、私はあなたがCGI拡張としてJavascriptを使用することを可能にする、JS-CGIをチェックアウトしたいです。

+0

これはまさにこれです。私はjs-cgiを見ましたが、それはかなり未成熟です。ノードの素晴らしい点は、ファイルシステム、データベース処理などのためのモジュールがたくさんあるということです。 ノードを単純なサーバーサイドスクリプティングライブラリとして使用できるようにするための事前プロジェクトはありませんか? – Bakaburg

0

CGIを使用できます。

#!/usr/local/bin/node 

var sys=require("sys"); 
sys.puts("Content-type: text/html\n"); 
sys.puts("Hello World!<br/>\n"); 
var argstr=""; 
for(var i in process.env){ 
    argstr+=i+": " + process.env[i] + "<br/>\n"; 
} 
sys.puts("args: "+ argstr +"<br/>\n"); 

だけのPerl/Pythonのような/../ ..

+0

私はこれを持っているのか分かりません... – Bakaburg

+1

Apache2を使用している場合は、CGIを有効にしてください:http://httpd.apache.org/docs/2.0/howto/cgi.html 上記のコードをコピーして貼り付けてくださいサーバー上のファイル、つまり:test.cgiにコピーします。ファイルが実行可能であることを確認してください(chmod a + x test.cgi)。あなたのブラウザでそれを開きます。 私の例:http://www.halcyon-interactive.nl/public/node-test.cgi?variable=1 – micha

+0

もちろん最初にノードをインストールする必要があります! – Bakaburg

関連する問題