-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathweatherAPI.js
More file actions
84 lines (56 loc) · 2.33 KB
/
weatherAPI.js
File metadata and controls
84 lines (56 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* Created by Fabian Tschullik on 02.07.2016.
*/
/*
## Server-Seitig
++++++++ - ++++++++
++++++++ - ++++++++
*/
//Verwendete Requirements
var request = require('request');
require('./models/actWeather');
var mongoose = require( 'mongoose' ),
Weather = mongoose.model('Weather');
require('./db.js');
//Anhand der cityID wird die Abfrage an die API der openWeatherMap gestellt
var cityID = '2848175';
//var cityID = '2846158';
//Token zur Autentifizierung an der openWeatherMap-Api
var token = '1ccf6bfbf52e4b3abadde9b4125547d3';
//Abfrage von aktuellen Wetterdaten eines bestimmten Ortes
var apiUrl = 'http://api.openweathermap.org/data/2.5/weather?id=';
//Variable in der sämtliche Wetterdaten einer Abfrage gespeichert werden.
module.exports =
{
//Funktion holt die aktuellen Wetterdaten zu einem über die City ID definierten Ort und liefert
//diese anschließend zurück. Da Wetterdaten werden ebenfalls in einer MongoDB gespeichert.
getActualWeather: function (callback) {
console.log(apiUrl + cityID + '&APPID=' + token);
//Hier wird der String zur Abfrage zusammen gefügt und der request anschließend gestartet
request(apiUrl + cityID + '&APPID=' + token, function (error, response, body) {
if (!error) {
var data = JSON.parse(body);
//Speichert das Ergebnis der Abfrage in einem Objekt
var weatherData = new Weather(
{
date_time: new Date(),
city_id: data.id,
city_name: data.name,
cords: {
lon: data.coord.lon,
lat: data.coord.lat
},
sunrise: data.sys.sunrise,
sunset: data.sys.sunset,
//Temp, Min & Max - Temp wird und Celsius umgerechnet
temp: (data.main.temp - 273.15),
temp_min: (data.main.temp_min - 273.15),
temp_max: (data.main.temp_max - 273.15),
//rain: data.rain['3h'],
clouds: data.clouds.all
});
//Liefert die Wetterdaten zurück
callback(weatherData);
}
});
}};