如何在 hapi js 中将文件作为流回复?

how to reply a file as a stream in hapi js?

我有一个 excel 文件。我想使用 hapi JS 回复对象将 excel 文件作为流回复给用户。我这样试过,但没有用。

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

谁能建议我实现这个目标的方法?

使用此代码提供文件。如果文件是静态文件,它会在浏览器上打印而不是像 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。希望这有帮助。