Нужна помощь в двух вызовах API в пределах одного маршрута Node.JS / Express - PullRequest
0 голосов
/ 30 марта 2020

Я просто тренируюсь с моим первым вызовом API в Node.JS. Использование API YahooWeather для создания настраиваемой страницы погоды. Погода работает, но я также хочу узнать текущее местное время целевого местоположения, которое оно не предоставляет. Однако он предоставляет имя зоны (например, Америка / Нью-Йорк), которое я хотел бы подключить ко второму API под названием Timezone.db, который «может» указывать местное время на основе заданного имени зоны. Я просто не уверен, как передать информацию из API YahooWeather в API Timezone.db, поэтому я могу затем отправить обе переменные данных на свою домашнюю страницу шаблона для обработки для отображения. Планирование использовать местное время для динамического переключения на фон страницы ночного изображения, если оно после времени заката в целевом местоположении.

Пока у меня работает API YahooWeather, и вот код для этого, просто не знаю, где вписывается во 2-й вызов API для часового пояса, используя часовой пояс, извлеченный из Yahoo Weather API. Пример запроса к db API часового пояса будет выглядеть следующим образом:

http://api.timezonedb.com/v2.1/get-time-zone?key=# ######## & format = json & by = zone & zone = America / New

var express = require("express"); 
var app = express();
var bodyParser = require("body-parser");
var location = "";

app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");


app.get("/", function(req, res){  // landing page route
    location = req.query.search;

    if (location === undefined){
        location = "paso robles, ca"; `// default location if left undefined`
        //console.log("location = ", location);
    }

var OAuth = require('oauth');
var header = {
    "X-Yahoo-App-Id": "########"
};
var request = new OAuth.OAuth(
    null,
    null,
    '###########################################################################################',
    '#######################################',
    '1.0',
    null,
    'HMAC-SHA1',
    null,
    header
);
request.get(
    'https://weather-ydn-yql.media.yahoo.com/forecastrss?location=' + location + '&format=json',
    null,
    null,
    function (err, data, result) {
        if (err) {
            console.log(err);
            return;
        } else {
            parsedData = JSON.parse(data); 
            console.log("Parsed Data = ", parsedData);
            res.render("home", {parsedData: parsedData});
        }
    }
);
});

Любая помощь, которую вы, ребята, можете оказать этому нубу, будет принята с благодарностью. -Спасибо!

1 Ответ

0 голосов
/ 30 марта 2020

Вы всегда можете запросить часовой пояс внутри вашей погоды. Обратный звонок

request.get(
    'https://weather-ydn-yql.media.yahoo.com/forecastrss?location=' + location + '&format=json',
    null,
    null,
    function (err, data, result) {
        if (err) {
            console.log(err);
            return;
        } else {
            parsedData = JSON.parse(data); 
            console.log("Parsed Data = ", parsedData);

            request.get(`timezone url`,function (err, data, result) {
                let timezone = data
                res.render("home", {parsedData: parsedData});
            });   
        }
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...