1

私はnode.jsの初心者です。次のようにインストールしました: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

コンソールから試してみましたが、うまくいきました:

console.log('Hello World!');

nodejs helloConsole.js

> Hello World!

次に、HTTPサーバー内で作成しようとしました。コードは次のとおりです。

var http = require("http");
http.createServer(function (request, response) {
   request.on("end", function () {
      response.writeHead(200, {
         'Content-Type': 'text/plain'
      });
      response.end('Hello HTTP!');
   });
}).listen(8080);

ターミナルから実行します:

nodejs hello.js

次に、でブラウザーを開きhttp://localhost:8080/ます。読み込みに時間がかかります。次に、chrome で次のように表示されます。

Unable to load the webpage because the server sent no data.

そしてfirefoxは私にそれを与えます:

The connection has timed out

注 : Apache など、他の Web サーバーは問題なく動作します。

4

3 に答える 3

2

リクエスト パラメータの「終了」イベントをリッスンしていますが、最も外側のコールバック関数が呼び出された時点で、リクエストはすでに終了しているため、そのイベントをサブスクライブするには遅すぎます。

nodejs.org のサンプル コードが示すように、最も外側のコールバックから直接応答できます。

于 2013-05-06T08:25:29.267 に答える
2

requestリスナーをオブジェクトにアタッチしてendイベントをリッスンすると、そのイベントが によってキャッチされるまで応答が表示されませんrequest

テストするには、ここで例として提供されているように変更することをお勧めします: 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/');
于 2013-05-06T08:18:41.353 に答える
0

Windows を使用している場合は、次の手順を試してみてください。

  1. http://nodejs.org/download/node.exeからダウンロードします。
  2. Hard Disk Driveのように実行したい場所から配置しますD:/nodejs/node.exe
  3. hello.js次に、同じdirectoryように配置しますD:/nodejs/hello.js
  4. 今からCommand Promptそのフォルダに移動してD:/nodejs/コマンドを実行しますnode hello.js
于 2013-05-06T08:19:09.283 に答える