我们正在使用 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);
}
这完全是虚构的。我的观点是,我想通过创建新请求并接收新响应来“模拟”我的应用程序中的请求,然后我可以用它来构造我的实际响应。
我不想直接调用我的路由和/或中间件。我希望它通过路由器,因为它必须在服务器范围内工作。
是否可以模拟内部请求而不在本地主机上执行真正的 HTTP 请求?
最佳答案
几年后,我有了答案。
最好的方法是从头开始创建一个新的 Context 对象,并尝试“模拟”Node.js IncomingMessage 和 ServerResponse 对象。
这并不容易,而且有点麻烦,但这正是 Koa 现在所需要的。我最终开始a new Koa-inspired framework这样效果更好。
关于javascript - Koa - 发出内部请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665340/