如何在 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
。希望这有帮助。
我有一个 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
。希望这有帮助。