javascript - Koa - 发出内部请求

标签 javascript node.js koa

我们正在使用 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/

相关文章:

javascript - Koa 中异步函数的奇怪问题

authentication - 使用koa和passport进行认证

heroku - socket.io-redis 和 heroku 中超出了最大调用堆栈大小

javascript - 使用 AngularJS 实现本地存储

javascript - knexfile.js 不读取 Dotenv 变量

javascript - Promise.race 中被拒绝的 promise 会发生什么?

c - 我如何在 Node 中模仿 C 的 CHAR 类型?

javascript - 如何欺骗 JavaScript GET 请求的用户代理?

node.js - Docker - 没有这样的文件或目录

node.js - 从 MongoDB 获取数据时出错