如何使用 fastify-http-proxy 拦截响应
How to intercept response with fastify-http-proxy
我正在尝试利用 fastify 和 fastify-http-proxy 为某些请求代理旧版 Web 服务器。
来自 fastify-http-proxy 存储库的示例代码:
const Fastify = require('fastify')
const server = Fastify()
server.register(require('fastify-http-proxy'), {
upstream: 'http://my-legacy-webserver.com',
prefix: '/legacy'
})
server.listen(3000)
它按预期工作,但一些代理请求可以 return 404,旧版网络服务器呈现其代理到客户端的自定义 404 页面。
我想拦截 404(可能每 40x 和 50x)响应并在我的 fastify 服务器中处理它们。有可能吗?我怎样才能做到这一点?
我认为这可以通过 replyOptions
中的 onResponse
处理程序来完成:
server.register(require('fastify-http-proxy'), {
upstream: 'http://my-legacy-webserver.com',
prefix: '/legacy',
replyOptions: {
onResponse (reply) {
// you have access to the response here, e.g. check for errors and handle them
reply.send("your modified response");
}
}
})
我正在尝试利用 fastify 和 fastify-http-proxy 为某些请求代理旧版 Web 服务器。
来自 fastify-http-proxy 存储库的示例代码:
const Fastify = require('fastify')
const server = Fastify()
server.register(require('fastify-http-proxy'), {
upstream: 'http://my-legacy-webserver.com',
prefix: '/legacy'
})
server.listen(3000)
它按预期工作,但一些代理请求可以 return 404,旧版网络服务器呈现其代理到客户端的自定义 404 页面。 我想拦截 404(可能每 40x 和 50x)响应并在我的 fastify 服务器中处理它们。有可能吗?我怎样才能做到这一点?
我认为这可以通过 replyOptions
中的 onResponse
处理程序来完成:
server.register(require('fastify-http-proxy'), {
upstream: 'http://my-legacy-webserver.com',
prefix: '/legacy',
replyOptions: {
onResponse (reply) {
// you have access to the response here, e.g. check for errors and handle them
reply.send("your modified response");
}
}
})