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

WBOY
풀어 주다: 2016-05-16 15:11:29
원래의
1525명이 탐색했습니다.

이 글에서는 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();
 });
로그인 후 복사
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿