В этом конкретном случае c я создаю прокси для другого сервера - прокси-сервер может быть включен или выключен, прокси-сервер всегда будет работать и перенаправит запрос только тогда, когда прокси-сервер вернется в оперативный режим. Итак, у меня есть этот код:
const s = http.createServer((req, res) => {
console.log('got a request, state:', cache);
const forwardReq = () => {
const r = http.request({
method: req.method,
headers: req.headers,
path: req.url,
port: 2020,
hostname: 'localhost',
protocol: 'http:',
}, incomingRes => {
incomingRes.pipe(res)
});
req.pipe(r);
};
if(cache.state === 'LIVE'){
return forwardReq();
}
waiting.push(forwardReq); // push the func onto a queue, to be called later
});
кажется, что он работает, но мне интересно, есть некоторые крайние случаи, о которых мне следует беспокоиться. У меня один вопрос: нужно ли мне вручную устанавливать заголовки в ответе или достаточно r.pipe (res)?
const forwardReq = () => {
const r = http.request({ ... },
incomingRes => {
for(const [k,v] of Object.entries(incomingRes.headers)){
res.set(k,v); // manually set headers here?
}
incomingRes.pipe(res)
});
req.pipe(r);
};
Я думаю, мне не нужно вручную устанавливать заголовки на ответ, но я не уверен. В этом случае мне не нужно беспокоиться о HTTPS, поскольку он находится на локальном хосте.