#node.js #fastify
#node.js #быстрый
Вопрос:
Я пытаюсь использовать fastify и fastify-http-proxy для прокси-сервера устаревшего веб-сервера для некоторых запросов.
Пример кода из репозитория 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)
Это работает так, как ожидалось, но какой-то прокси-запрос может вернуть 404, при этом устаревший веб-сервер отображает свою пользовательскую страницу 404, которая проксируется клиенту.
Я хотел бы перехватить 404 (возможно, каждые 40x, а также 50x) ответов и обработать их на моем сервере fastify. Возможно ли это? Как я могу этого добиться?
Ответ №1:
Я думаю, это можно сделать с onResponse
помощью обработчика в replyOptions
:
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");
}
}
})