2017-09-06 5 views
1

나는 엑셀 파일을 가지고있다. 나는 hapi JS 응답 객체를 사용하여 사용자에게 스트림으로 파일을 보내고 싶습니다. 나는 이것을 시도했지만 효과가 없었다.hapi js에서 파일을 스트림으로 회신하는 방법은 무엇입니까?

let readStream = fs.createReadStream(filePath); 
reply(null,readStream.pipe()); 

아무에게도이 방법을 제안 할 수 있습니까?

+0

엑셀 데이터를 인쇄 하시겠습니까 ??? 당신이 엑셀 데이터를 표시하고 싶다는 뜻 ... –

+0

엑셀 파일로 엑셀 파일을 다운로드 할 필요가 없습니다. 엑셀을 인쇄 할 필요가 없습니다. 사용자에게 직접 파일을 보낼 수 있지만, 쓰는 것보다는 스트림으로 데이터베이스에서 데이터를 가져옵니다. 파일을 엑셀로 보낸 다음 엑셀 파일로 답장하십시오. 스트림을 사용하고 싶습니다. –

+0

Checkout 제 답변 .. 어떤 질문이 있더라도 알려주세요 .... –

답변

-1

파일 제공에이 코드를 사용하십시오. 파일이 정적 파일 인 경우 PDF와 같은 정적 파일 이외의 브라우저에서 인쇄하고 Excel은이 파일을 다운로드합니다.

'use strict'; 

const Path = require('path'); 
const Hapi = require('hapi'); 
var fs = require('fs'); 
const server = new Hapi.Server(); 
server.connection({ port: 3000, host: 'localhost' }); 

server.register(require('inert'), (err) => { 

    if (err) { 
     throw err; 
    } 

    server.route({ 
     method: 'GET', 
     path: '/testdoc.docx', 
     handler: function (request, reply) { 
var stream = fs.createReadStream('./testdoc.docx'); 
stream.on('data', function(data) 
{ 
    console.log(data); 
console.log('loaded part of the file'); 
//reply(null,data); 
reply(data); 
}); 
     stream.on('end', function() 
{ 
    console.log('all parts is loaded'); 
}); 

      } 
    }); 

    server.start((err) => { 

     if (err) { 
      throw err; 
     } 

     console.log('Server running at:',server.info.uri); 
    }); 
}); 

서버 node server.js를 실행하고 브라우저에서 http://localhost:3000/testdoc.docx로 실행. 희망이 도움이됩니다.

+0

코드를 주셔서 감사합니다. 정확히 내가 지금 무엇을 사용하고 있습니다 하지만 쓰기 및 읽기 시간에 일어날 수 있기 때문에 스트림으로 파일을 보내고 싶습니다. 스트림을 완료 나는 파일을 삭제할 수 있습니다 (현재 2mints와 함께 settimeout을 사용하고 있지만 보안을위한 좋은 방법은 아닙니다) –