3

インターネット上のどこにでもある簡単な Helloworld の例を書いています。

[nodejs.php] [場所: localhost/nodejs.php]

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/javascript">
            var http = require('http');

            var server = http.createServer(function (request, response) {
              response.writeHead(200, {"Content-Type": "text/plain"});
              response.end("Hello World\n");
            }).listen(8000);

            console.log("Server running at http://127.0.0.1:8000/");
        </script>
    </head>


</html>

コードは非常に単純で理解しやすいものです。ただし、コードを実行しようとすると、次のエラーが表示されました。

Uncaught ReferenceError: require is not defined 

require()このメッセージは、マイページなどの機能がないことを意味することを理解しています。もちろんありません。私は何度も Google を調べ、さまざまなチュートリアルを試しnodejs.jsて、Web ページに何らかのファイルを埋め込む必要があるかどうかを調べましたが、すべてのチュートリアルではこれについて言及されていないようで、Nodejs フォルダーに入ろうとしました。edit.jsadduser.jsbin.js...のようなファイルがたくさん見つかり、正式に立ち往生しています。私は Nodejs が実際に何であるか、および例が機能しない理由について何度も調べましたが、Google からのサポートはあまり多くありません。これまでのところ、私が理解しているように:

  • nodejs は、イベント駆動型のノンブロッキング I/O である JavaScript ツールキットです。
  • nodejs により、ユーザーは JavaScript を使用してバックエンド コーディングにアクセスできます
  • nodejs は V8 Google Chrome JavaScript エンジンを解析します
  • nodejs は並行サーバー アプリケーションを作成できます
  • 私の仮定では、nodeJS はサーバーとクライアントの間を接続してバックエンド アクセスを許可するフレームワークです (おそらく間違っています)。

私が間違っている場合は修正してください。本当に感謝しています。リソースがあまりないので、このテーマについてもっと知識が必要です。

私の質問は次のとおりです。

  1. NodeJS が JavaScript ライブラリである場合、それを自分の Web サイトに埋め込むにはどうすればよいですか? localhost とオンライン ホスティングの違いはありますか?
  2. listen(8000) を扱っている人をよく見かけますが、ポートとは何ですか? どのポートを選択すればよいですか?
  3. Socket.io は NodeJS と同じものですか、インストール方法は同じですか (Socket.io が Nodejs 上で動作することは理解しています)。NodeJSを使用したSocket.ioは、抽象的にjQueryを使用したjQueryUIと同じですか? 今後の参考として、NodeJS で別のライブラリを使用したい場合、そのための標準プロトコルは何ですか?

みんなありがとう、

ティム。

4

3 に答える 3

7

NodeJS を埋め込む必要がありますか?

いいえ。Web ブラウザではなく Node を使用して実行する必要があります。

NodeJS が JavaScript ライブラリの場合

そうじゃない

どうすれば自分のウェブサイトに埋め込むことができますか?

Web サーバーにインストールして、そこで実行できます (サーバー側)。

localhost とオンライン ホスティングの違いはありますか?

いいえ

listen(8000) を扱っている人をよく見かけますが、ポートとは何ですか?

TCP/IP サーバーを実行している場合は、パケットを送信できるようにポートをリッスンする必要があります。

どのポートを選択すればよいですか?

他の何かによって使用されていないもの

Socket.ioはNodeJSと同じですか

いいえ。2 つの部分があります。1 つの部分は Node を使用してサーバー上で実行され、もう 1 つの部分はブラウザーで実行されます。

それをインストールする方法?

ウェブサイトに説明があります。

NodeJSを使用したSocket.ioは、抽象的にjQueryを使用したjQueryUIと同じですか?

いいえ

今後の参考として、NodeJS で別のライブラリを使用したい場合、そのための標準プロトコルは何ですか?

CommonJS

つまり、NodeJS は (愚かな説明では) PHP のようなものです。PHPの代わりにNodeJSを使っているということですか?

簡単に言えば、はい。

そして、PHP ホストを見つける代わりに、NodeJS ホストが必要ですか?

おそらく。誰かが NodeJS ホスティング自体を提供しているかどうかはわかりません。Nodeを使いたい時はVPSを使います。

もしそうなら、NodeJSをインストールした後、開始できるNodeJSのhtdocs(または同様のもの)フォルダーはどこにありますか?

NodeJS は Web サーバーではありません。JavaScriptを実行する手段です。JavaScript で Web サーバーを作成し、それを Node 経由で実行できます。これは、質問のコードが行うことです。そのコードの htdocs フォルダーはありません。これは、ハードコードされた同じ応答が常に返されるためです。要求された URL に基づいてファイル システムからファイルを読み取るようにする場合は、その機能を追加する必要があります (requestオブジェクトを調べて、 filesystem モジュール.

また、Localhost を実行しますか?

必要なネットワークインターフェイスで実行されます。メソッドlisten()ドキュメントを参照してください。引数を渡していないためhostname、すべてのインターフェイス (localhost を含む) でリッスンします。

于 2013-08-10T20:08:07.917 に答える
2

イントロの例はhttp://nodejs.org/で説明されています:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

サーバーを実行するには、コードをファイル example.js に入れ、コマンド ラインから node プログラムで実行します。

% node example.js
Server running at http://127.0.0.1:1337/

コード ブロックをファイルexample.js(HTML なし) に書き込み、 で実行しnode example.js、ブラウザを開いてhttp://127.0.0.1:1337/

于 2013-08-11T01:48:03.917 に答える
0

ノードはサーバー側であり、クライアント側ではありません。これらのファイルを提供しているマシンで実行する必要があります。いいえ、一部のページに埋め込むことはできません。ここでダウンロードして構成する方法を調べてください: http://nodejs.org

于 2013-08-10T20:49:49.360 に答える