请求JS不给出响应

时间:2019-11-06 11:39:02

标签: node.js express request

我正在尝试在Express Node应用程序中创建一个路由,该路由将调用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 个答案:

答案 0 :(得分:1)

使用请求承诺Refer Document

//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
    });

});

希望这会对您有所帮助。让我知道您是否有任何问题。

答案 1 :(得分:0)

request js不返回promise,我们必须在https://www.npmjs.com/package/request

中使用回调来查找更多文档