2017-04-26 11 views
0

nodechool.io(learnyounode)からnode.js演習をしています。演習の1つは、読み取り可能なファイルストリームからテキストファイルを提供するhttpサーバーを作成することです。私は非同期プログラミングには非常に新しいです。私が思いついた解決策は以下のとおりです。Node.js - HTTPレスポンスへの読み取り可能なストリームをパイプする

var http = require('http'); 
var fs = require('fs'); 

var readable = fs.createReadStream(process.argv[3]); 
var server = http.createServer(function(request, response) { 
    readable.on('data', function(chunk) { 
     response.write(chunk); 
    }) 
}); 

server.listen(process.argv[2]); 

これは動作しますが、しかし、公式の解決策ではなく、上のデータイベントのパイプを使用しています。

var http = require('http') 
var fs = require('fs') 

var server = http.createServer(function (req, res) { 
    res.writeHead(200, { 'content-type': 'text/plain' }) 
    fs.createReadStream(process.argv[3]).pipe(res); 
}) 

server.listen(Number(process.argv[2])) 

(可能性)の違い、および/または利点は何ですかいずれにせよ?

答えて

0

あなたのバージョンにはさらに多くのコードがあり、通常は間違いを犯す選択肢が増えています。ストリームでエラーが発生した場合のようないくつかのエッジケースを考慮しますか?

私は、動作が何であるかは正確にはわかりませんが(たとえば、存在しないファイル名を挿入するなどして自分自身を確認できます)、バージョンによってはエラー処理がうまくいきません。あなたはエラーイベントを聞いていません)。

関連する問題