res.send (body.data) не определено - PullRequest
0 голосов
/ 04 сентября 2018

я пытаюсь получить другой API, используя запрос узла, но когда я пытаюсь отобразить body.data, его возвращение не определено

router.get('/',  (req, res,next) => {

    request('http://localhost:3000/api/v1/promos',  (error, response, body) => {
        if(error) { 
            res.send('An erorr occured')
            console.log(error)
        }
        else {
            res.send(body.data)
        }
    });
});

кто-нибудь знает, что не так

1 Ответ

0 голосов
/ 04 сентября 2018

Если тело вашего запроса - JSON, вам нужно проанализировать его, чтобы превратить его в объект Javascript, чтобы получить доступ к свойству .data.

Вы можете сделать это, передав параметр json: true в request(), и он проанализирует JSON для вас.

Или вы можете вручную проанализировать тело с помощью let result = JSON.parse(body).


Вот как вы устанавливаете опцию json: true:

router.get('/',  (req, res,next) => {

    request({
       url: 'http://localhost:3000/api/v1/promos',
       json: true
    },  (error, response, body) => {
        if(error) { 
            res.send('An erorr occured')
            console.log(error)
        }
        else {
            res.send(body.data)
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...