2017-04-26 2 views
0

nodeschool.io (learnyounode)에서 node.js 연습을하고 있습니다. 연습 중 하나는 읽을 수있는 파일 스트림에서 텍스트 파일을 제공하는 http 서버를 만드는 것입니다. 나는 비동기 프로그래밍에 대한 새로운 지식을 가지고있다. 내가 생각 해낸 해결책은 다음과 같습니다Node.js - HTTP 응답에 읽을 수있는 스트림을 파이핑

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])) 

무엇입니까 (전위)의 차이 및/또는 혜택 :

이 작동
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]); 

는, 그러나 공식 솔루션에 데이터 이벤트 대신 파이프를 사용 어느 쪽이라도 그것을하는 것?

답변

0

글쎄, 버전에 더 많은 코드가 있으며, 일반적으로 실수 할 수있는 옵션이 많다는 뜻입니다. 스트림이 오류를 throw 할 때 어떤 일이 일어나는지와 같은 몇 가지 중요한 경우를 고려하십시오.

정확히 어떤 동작이 아닌지 (예 : 존재하지 않는 파일 이름을 삽입하여 직접 확인할 수 있음)하지만 버전에 따라 오류 처리가 제대로 작동하지 않아 오류가 무시 될 수 있습니다. 오류 이벤트를 수신하지 않습니다.)

관련 문제