Этот код возвращает нужную информацию в браузер, но работает долго - 2-4 секунды.
var rp = require('request-promise');
var i = '91.105.236.7';
app.get('/', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
var options = {
uri: 'http://api.ipapi.com/' + i,
qs: {
access_key: '98eeeb1c1233456743840f9195d' // -> uri + '?access_token=xxxxx%20xxxxx'
}
};
rp(options)
.then(function (repos) {
console.log(repos);
res.send(repos);
})
.catch(function (err) {
// API call failed...
});
});
А такой код возвращает пустоту в браузер, но через некоторое время в консоль выводится нужный ответ. В браузер ответ приходит быстро, обычно меньше чем за секунду.
var rp = require('request-promise');
var i = '91.105.236.7';
var geo = geoIP(i);
app.get('/', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.send(geo);
});
function geoIP(i){
var options = {
uri: 'http://api.ipapi.com/' + i,
qs: {
access_key: '98eeeb1c73191023211233121233840f9195d' // -> uri + '?access_token=xxxxx%20xxxxx'
}
};
rp(options)
.then(function (repos) {
console.log(repos);
return repos
})
.catch(function (err) {
// API call failed...
});
}
Код с таким вызовом функции тоже работает некорректно:
app.get('/', function(req, res){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
var geo = geoIP(i);
res.send(geo);
});
Подозреваю, что функция просто не успевает обработаться, т.к идет обращение к api стороннего сайта. Это связано с механикой работы node.js? (новичок в node.js)