Koa - 发出内部请求

问题描述 投票:1回答:1

我们正在使用Koa来创建REST服务。

我想做的一件事是使用自定义请求对象从中间件调用内部API,并在将响应提供给真实客户端之前解析响应。

如果这有点难以理解,请考虑以下伪代码:

var myMiddleware = function(ctx, next) {

   var fakeSubRequest = new Koa.Request('GET', '/some-internal-path');
   var fakeSubResponse = yield koa.internalRequest(fakeSubRequest);

   ctx.body = someTransformation(fakeSubResponse.body); 

}

这完全是虚构的。我的观点是,我希望通过创建新请求并接收新响应来“模拟”我的应用程序中的请求,然后我可以使用它来构建我的实际响应。

我不想直接调用我的路由和/或中间件。我希望它通过路由器,因为它必须在服务器范围内工作。

是否可以在localhost上执行真正的HTTP请求来模拟内部请求?

javascript node.js koa
1个回答
1
投票

几年后,我有一个答案。

最好的方法是从头开始创建一个新的Context对象,并尝试“模拟”Node.js IncomingMessage和ServerResponse对象。

这不是一件容易的事,而是一种黑客攻击,但这正是Koa现在所要求的。我最终开始做更好的a new Koa-inspired framework

© www.soinside.com 2019 - 2024. All rights reserved.