【发布时间】:2020-11-16 23:52:07
【问题描述】:
首先,如果标题描述性不够,请道歉。
这是我必须使用的设置:
Internet DMZ Firewall LAN
======== === ======== ===
:
clients* -------> App -----------:-----------> API
:
clients 通过公共 URL 访问App,此App 然后访问内部API 服务器并代理来自客户端的请求。客户端不有权访问内部API 服务器,因为它的接口不能暴露在防火墙之外。
App 是一款小巧的 Meteor 应用程序。 API 是一个更大的应用程序,也使用 Node.js。 App 需要从 API 请求一个文件(很高兴地提供服务)并将流代理回客户端。
如何将响应从API 通过 App 流式传输到客户端?
这是我目前在 Meteor 应用上的路线图:
import connectRoute from 'connect-route';
import fetch from 'node-fetch';
WebApp.connectHandlers.use(connectRoute(router => {
router.get('/pdf/:hash', async (req, res, next) => {
const { hash } = req.params;
// debug
res.writeHead(200);
res.end(`Requested file hash: ${hash}`);
// TODO : proxy response headers back to client
// const response = await fetch(`http://api.domain.local/files/${hash}`);
});
}));
我不知道如何处理response。
【问题讨论】: