【发布时间】:2016-03-30 20:44:24
【问题描述】:
我正在寻找hapi中的并行方法
// Express + Request exmaple
function(req, res){
request('http://example.com/image.png').pipe(res);
}
如何在 hapi 中传递响应?
server.route({
method: "*",
path: "/api/results/{date}",
handler: (request, reply) => {
//????reply(?);
}
});
【问题讨论】:
-
我不确定你是否可以。请求是否支持streams2 api?来自 hapi 文档:
Stream object (Note - any Stream object must be compatible with the "streams2" API and not be in objectMode)hapijs.com/api#reply-interface -
我已经用 aws-sdk 模块完成了:
reply(s3.getObject(params).createReadStream()); -
server.route({ method: "*", path: "/api/results/{date}", handler: (req, reply) => { var fs = require('fs' ); var fileStream = fs.createWriteStream('./doron'); request('google.com/doodle.png').pipe(fileStream); reply(fileStream); } }); 这会引发以下异常 Debug: internal, implementation, error Error: Stream must have a Streams2 可读接口
-
这就是我所看到的,这就是为什么我说我认为请求模块不支持streams2。您可以尝试npmjs.com/package/wreck,但我不确定这是否也有效。
-
好的,我会调查 wreck ,我现在的问题是 request 模块不支持 stream2 。我的观点是 hapi 应该支持并鼓励人们使用流。经过我所有的调查,我发现没有足够的文档,关于 hapi 中的流支持。
标签: javascript node.js stream hapijs