当前位置: 首页 > 面试题库 >

Express-从远程Web服务返回二进制数据

董子平
2023-03-14
问题内容

我尝试使用Express返回一些二进制数据。在示例中,它是PDF,但从理论上讲,它可以是任何类型的文件。

但是暂时将重点放在pdf上。我写了这段代码:

app.get('*', function (req, res) {
    getBinaryData(req.url,
        function (answer) {
            res.type('pdf');
            res.end(new Buffer(answer, 'binary'));
        },
        function (error) {
            res.setHeader('Content-Type', 'text/plain');
            return res.end(error);
        }
    );
});

基于我在这里看到的内容:https :
//html" target="_blank">github.com/strongloop/express/issues/1555

但是,我得到的PDF文件具有正确的页数,正确的标题…。但是所有页面都是空白

我肯定会担心getBinaryData()的返回,因为此函数询问了外部Web服务,当我直接询问该服务时,我得到了正确的文档。

预先感谢您的回答


问题答案:

我找到了一个更简单的解决方案:

request(req.url).pipe(res);

这会将来自远程Web服务的原始响应直接传递给我的响应!无论文件类型如何,我都能得到正确的文件。



 类似资料:
  • 问题内容: 我有一个用于Web应用程序的ASP.net Web服务,该服务根据我调用的函数向我返回XML或JSON数据。到目前为止,这一直很好,但是我遇到了一个问题。我想在我的页面上创建一个“导出”链接,该链接将下载一个JSON文件。链接的格式非常简单: 您可能会想到,这应该导出项目2。到目前为止,很好,是吗? 问题是,由于我没有特别要求接受的内容类型是JSON,因此ASP.net绝对拒绝发回除X

  • 问题内容: 我正在尝试通过JSONP获取一些数据。使用Firebug,我可以看到正确返回的数据,但是我很难思考如何解析它。数据返回真的是嵌套数组正确吗?是回调函数的名称。数据如下所示: 关于如何正确解析和输出只是有些困惑。 问题答案: 您不必解析数据。它已经是有效的JavaScript对象。例如,要在someFunction中打印第一个对象的description属性

  • 问题内容: 早上, 我需要从Web服务返回一条消息。以下是我的代码示例,我正在返回一个字符串。 我目前收到以下回应… 我理想上想返回类似 我敢肯定,一旦我有了主意,就可以在需要时退还其他物品。这只是我需要解决的基础。 非常感谢所有帮助,在此先感谢:) 更新:刚发现这个… 我需要类似的东西吗 问题答案: 用: 返回的结果将类似于:

  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 问题内容: 我正在使用.Net framework 2.0 / jQuery对2.0 Web服务进行Ajax调用。无论我在ajax调用中将contentType设置为什么,该服务始终返回XML。我希望它返回Json! 这里是电话: 这是Fiddler中请求标头的样子: 我尝试将contentType设置为’text / json’并获得相同的结果。 这是Web服务方法: 这是它返回的内容: 有人知

  • 我通过jQuery ajax调用一个Web服务。在浏览器中检查时,从服务返回的响应似乎很好,如下所示: 当我通过jQueryAjax调用得到相同的结果时,它显示为未定义。 此处“数据”显示为对象文档, “cont”显示为未定义 当我试图提醒“jqxhr”参数时,它显示了来自web服务的所有数据,并且状态为OK。我在大多数帖子和博客上都试过了,但都找不到哪里出了问题。请帮忙。