如何使用KoaJs通过http-proxy返回api响应

时间:2019-01-14 14:51:22

标签: node.js npm http-proxy koa netflix-zuul

我正在尝试使用node创建Zuul像代理网关一样。基本上,它将接收任何请求并执行一些验证,然后再将其发送到原始api。但它需要接收回响应并发送回原始用户。
为此,我选择了带有KoaJ的http-proxy。以下是到目前为止的代码:

const Koa = require('koa')
const httpProxy = require('http-proxy')
const app = new Koa()
const apiProxy = httpProxy.createProxyServer({ target: "https://jsonplaceholder.typicode.com/posts", changeOrigin: true, ws: false, proxyTimeout: 5000 })


app.use(async ctx => {
    apiProxy.web(ctx.req, ctx.res, e => {
        console.log(e)
    })
    apiProxy.on('proxyRes', (proxyRes, req, res) => {
        ctx.resp = proxyRes.body
    })
})

app.listen(3000)

现在可能是api调用正在传递,但是我无法捕获任何回调中的响应,并以异步方式将其发送回用户。
任何帮助表示高度赞赏。

0 个答案:

没有答案