Запрос JS не дает ответ - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать маршрут в приложении экспресс-узла, которое вызовет API и напечатает ответ. Я использую request.js для вызова API. Я не могу получить ответ. Что я делаю неправильно?

var express = require('express');
const request = require('request');
const API_URL= 'http://api.airvisual.com/v2/nearest_city';
const API_KEY= 'XXXXXXXX';

var router = express.Router();
var URL;

router.get('/getDetails', function(req, res){
var options = {
url: API_URL + '?key='+ API_KEY,
method: 'GET',
qs: {
    lat: req.query.lat,
    long: req.query.lon
}
}

res.send(request.get(options).response);
});

module.exports = router;

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Использовать запрос-обещание См. Документ

//use npm install --save request-promise
var rp = require('request-promise');

router.get('/getDetails', function(req, res){

var options = {
url: API_URL + '?key='+ API_KEY,
method: 'GET',
qs: {
    lat: req.query.lat,
    long: req.query.lon
},
json : true
}

rp(options)
    .then(function (parsedBody) {
        // POST succeeded...
        res.send() // send response data 
    })
    .catch(function (err) {
        // POST failed...
        res.send() //send error data
    });

});

Надеюсь, это поможет вам. Дайте мне знать, если у вас возникнут проблемы.

0 голосов
/ 06 ноября 2019

request js не возвращает обещание, мы должны использовать обратный вызов, чтобы найти больше документов здесь https://www.npmjs.com/package/request

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...