将原始 http 响应转换为 Koa 兼容对象?

Convert raw http response to Koa compatible object?

我有一个使用 Node 的 http 模块创建的基本 HTTP 服务器:

var http = require('http');

http.createServer(function (request, response) {
  response.end();
}).listen(8080);

我正在从这个原始 http 服务器获取 requestresponse 对象,但我需要将它们与一些预先存在的 Koa 中间件一起使用,所以我正在寻找一些东西让 Koa 阅读它们,然后 return 给我一个我可以使用的 context 对象。

我现在用的是:

const contextCompat = context => ({
 cookies: { get: key => getCookies(context.request)[key] },
  request: context.request,
  state: {},
  throw: (status, message) => {
    throw new Error(status, message);
  },
});

但我想使用内置的 Koa 逻辑来包装我的原始上下文。

Koa 是否暴露了我可以使用的东西?

我找到了一个解决方案,它使用私有 API(因此它可能会中断)。

const app = new Koa();

// pass the http request and response objects here
const koaContext = app.createContext(request, response);