2011-12-17 1 views
0

HTTPモジュールを使用せずにNode.jsの上にHTTPサーバを作成しています。HTTPレスポンスの一部としてファイルをストリームに流すためにファイルをディスクから取得する

GETメッセージの取得:GET /www/index.html HTTP/1.1は、/www/index.htmlにあるファイルで、画像やその他のファイルと同じ応答を送信する必要があります。

誰かがディスクからファイルを取り出してHTTPレスポンスに追加するjavascriptの方法を教えてもらえますか?

私のサーバーは、以下のコンテンツタイプをサポートすることができるはず

  1. のJavaScript:アプリケーション/ javascriptの
  2. HTML:text/htmlの
  3. CSS:テキスト/ cssの
  4. JPEG:画像/ JPEG
  5. GIF:画像/ gif形式
+0

HTTPサーバは、次のコンテンツの種類(HTTPレスポンスヘッダ)をサポートする必要があります – user1066986

答えて

1

私はと思いますはあなたが探しているものです。

ファイルを開いたり読み込んだりするためのさまざまな機能を提供します。簡単な例:

fs.readFile('/etc/passwd', function (err, data) { 
    if (err) throw err; 
    console.log(data); 
}); 

ます。また、ノードのファイルを読み込むについては、このブログ記事を参照してくださいすることができます。このようなDifferent ways to read in files using node.js

1

何か:

var fs = require('fs'), 
    http = require('http'), 
    path = require('path'); 
http.createServer(function(req,res){ 
    path.exists('./' + req.url, function(exists){ 
    if (!exists){ res.writeHead(404, {'Content-Type': 'text/plain'}); res.end('not found'); } 
    else { 
     var read_stream = fs.createReadStream('./' + req.url); 
     if (read_stream.readable){ res.writeHead(200, {'Content-Type':'text/plain'}); } 
     else { res.writeHead(500, {'Content-Type':'text/plain'}); res.end('Error Reading File'); } 
     read_stream.on('data', function(data){ res.write(data); }); 
     read_stream.on('end', function(){ res.end(); fs.close(read_stream); }); 
    } 
    } 
}).listen(3030); 

ここでの主なトリックが読めるストリームを使用することですファイルの JavaScriptの:アプリケーション/ javascriptの HTML:text/htmlの CSS:テキスト/ cssの JPEG:画像/ JPEG GIF:画像/ gif形式

関連する問題