@darkoptimist

Как вернуть json с сервера node js?

Доброго дня. Клиент посылает на сервер запрос, сервер должен вернуть json, взяв его с другого сервера.

router.post('/hello', jsonParser, function(req, res){
    console.log("hello")
    
    let url = "http://127.0.0.1:3000/api_db/last5min";
 
    let options = {json: true};

    
    
    request(url, options, (error, res, body) => {
        if (error) {
            return  console.log(error)
        };
     
        if (!error && res.statusCode == 200) {
            
             res.send(body) //тут ругается
        };
    });
 
});


Код обработчика из браузера:

var button = document.querySelector("button");
  button.addEventListener("click", function() {
	console.log("Button clicked.");
	const request = new XMLHttpRequest();
	const url = "my_api/hello"
	request.open('POST', url);
	request.addEventListener("load", function () {
                 let receivedJson = JSON.parse(request.response);
                 console.log(receivedJson.Date, "-", receivedJson.Date);   // смотрим ответ сервера
             });
	request.send();
	
  });
  • Вопрос задан
  • 673 просмотра
Решения вопроса 1
amorphis
@amorphis
Технолог в Студии Артемия Лебедева
Вы пытаетесь вызвать метод .send() у переменной res вышестоящего скоупа.
router.post('/hello', jsonParser, function(req, res){
    // тут "res" один

    request(url, options, (error, res, body) => {
        // тут "res" уже другой
        // поэтому res.statusCode - работает, а res.send() - нет
    });
});

Надеюсь понятно объяснил.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы