Итак, я создаю REST API, используя узел, и мне нужно создать маршрут. Назначение маршрута: действовать как прокси-сервер и совершать вызовы на другой внешний веб-сайт и возвращать ответ, который он получает по первому запросу. До сих пор, у меня есть следующий код и он работает:При создании REST API в узле, как я могу передать HTTP-ответ от запроса, сделанного на внешний веб-сайт, на исходный вызов api?
app.post('/v1/something/:_id/proxy',
function(req, res, next) {
// Basically make a request call to some external website and return
// the response I get from that as my own response
var opts = {/*json containing proper uri, mehtod and json*/}
request(opts, function (error, responseNS, b) {
if(error) return callback(error)
if(!responseNS) return callback(new Error('!response'))
return res.json(responseNS.body)
})
}
)
Мой вопрос, как я могу транслировать этот HTTP ответ, который я получаю от внешнего веб-сайта. Под этим я подразумеваю, что хочу получить ответ как поток и продолжать возвращать его, как только он приходит в куски. Возможно ли это?
Вы хотите сказать, что хотите вернуть кусок, как только он был получен от запроса на внешний сайт? –
Вы не должны использовать флаг json в параметрах, если хотите его пропустить, поскольку в этом случае вы не должны заботиться о содержимом. Этот флаг неявно активирует десериализацию JSON, которая потребует полного буфера ответа для десериализации. – jishi
@LazarevAlexandr: Да. –