>  기사  >  웹 프론트엔드  >  Node.js_node.js에서 파일을 작성하는 세 가지 방법

Node.js_node.js에서 파일을 작성하는 세 가지 방법

WBOY
WBOY원래의
2016-05-16 15:11:291513검색

이 글에서는 Node.js에서 파일을 작성하는 세 가지 방법을 공유합니다. 구체적인 내용은 다음과 같습니다

1. 파이프 흐름을 통해 파일 쓰기
파이프를 사용하여 바이너리 스트림을 전송하면 쓰기 가능한 스트림이 너무 빨리 충돌하는 것을 걱정할 필요가 없습니다(권장).

var readStream = fs.createReadStream(decodeURIComponent(root + filepath.pathname)); // 必须解码url
 readStream.pipe(res); // 管道传输
 res.writeHead(200,{
   'Content-Type' : contType
 });

 // 出错处理
 readStream.on('error', function() {
   res.writeHead(404,'can not find this page',{
     'Content-Type' : 'text/html'
   });
   readStream.pause();
   res.end('404 can not find this page');
   console.log('error in writing or reading ');
 });

2. 스트림 쓰기를 수동으로 관리
크고 작은 파일 처리에 적합한 수동 관리 흐름

var readStream = fs.createReadStream(decodeURIComponent(root + filepath.pathname));
 res.writeHead(200,{
   'Content-Type' : contType
 });

 // 当有数据可读时,触发该函数,chunk为所读取到的块
 readStream.on('data',function(chunk) {
   res.write(chunk);
 });

 // 出错时的处理
 readStream.on('error', function() {
   res.writeHead(404,'can not find this page',{
     'Content-Type' : 'text/html'
   });
   readStream.pause();
   res.end('404 can not find this page');
   console.log('error in writing or reading ');
 });

 // 数据读取完毕
 readStream.on('end',function() {
   res.end();
 });

3. 데이터 읽기와 쓰기를 한번에
파일의 모든 내용을 한 번에 읽기, 작은 파일에 적합(권장하지 않음)

fs.readFile(decodeURIComponent(root + filepath.pathname), function(err, data) {
   if(err) {
     res.writeHead(404,'can not find this page',{
       'Content-Type' : 'text/html'
     });
     res.write('404 can not find this page');

   }else {
     res.writeHead(200,{
       'Content-Type' : contType
     });
     res.write(data);
   }
   res.end();
 });
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.