我正在尝试使用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调用正在传递,但是我无法捕获任何回调中的响应,并以异步方式将其发送回用户。
任何帮助表示高度赞赏。