4
var sys = require("sys"),  
my_http = require("http");  
my_http.createServer(function(request,response){  
    sys.puts("I got kicked");  
    response.writeHeader(200, {"Content-Type": "text/plain"});  
    response.write("Hello World");  
    response.end();  
}).listen(8080);  
sys.puts("Server Running on 8080");

上記は私の基本的な Web サーバーです。HTML と JS ファイルを含むアプリケーションを実行したいと思います。ポートからアクセスできるように、これらのファイルをどこに配置しますか。

を使用Apache and Xamppしているので、ファイルをhtdocsディレクトリに配置し、ブラウザからアクセスしますが、node.js完全に混乱していますか?.

4

3 に答える 3

12
于 2013-09-13T13:26:10.000 に答える
1

サーバーを実行しているユーザーがファイルを読み取ることができる限り、ファイルを好きな場所に置くことができます。

ただし、そのコードでそれらを提供したい場合は、response.*持っているすべてのコードを次のようなコードに置き換える必要があります。

  1. のデータに基づいて、要求されているファイルを特定します。request
  2. そのファイルが存在するかどうかを判断します (存在しない場合は 404 応答を送信します)。
  3. そのファイル タイプに適したコンテンツ タイプを特定し、ヘッダーを適切に設定する
  4. ファイルを読み込んでレスポンスに出力する

つまり、Node.js は Web サーバーではありません。JavaScript で Web サーバーを作成し、それを Node.js で実行することはできますが、まだそのルートに沿った最初のステップを踏んだだけです。

于 2013-09-13T11:11:38.867 に答える
1

Node.js を使用するために Apache は必要ありません。基本的なサーバーが必要な場合は、Connectミドルウェアを使用できます。

var connect = require('connect');
var port = process.env.PORT || 8080;

connect()
  .use( connect.static(__dirname + '/public') )
  .use( function (request, response) {
    /* your code */
  })
  .listen(port);

publicjsファイルと一緒にディレクトリを作成し、そこに静的ファイルを置き、サーバーを起動します

$ node index.js

Connect がインストールされていない場合:

$ npm install connect --save
于 2013-09-13T11:20:19.390 に答える