곽태식

일부 수정,테스트중

1 const db = require('./db.js'); 1 const db = require('./db.js');
2 const secret_key = require('../keys/api_option').key; 2 const secret_key = require('../keys/api_option').key;
3 +const secret_D_key = require('../keys/api_option').D_key;//사망교통사고 키
3 const requesting = require('request'); 4 const requesting = require('request');
4 const lat = "37.239795"; 5 const lat = "37.239795";
5 const lon = "127.083240"; 6 const lon = "127.083240";
...@@ -23,6 +24,9 @@ module.exports = (server, app) => { ...@@ -23,6 +24,9 @@ module.exports = (server, app) => {
23 24
24 let info = {} 25 let info = {}
25 26
27 +
28 +
29 +
26 const req_API = (when, what) => { 30 const req_API = (when, what) => {
27 //async await 사용하기 위하여 promise 사용 31 //async await 사용하기 위하여 promise 사용
28 return new Promise((resolve, reject) => { 32 return new Promise((resolve, reject) => {
...@@ -44,6 +48,30 @@ module.exports = (server, app) => { ...@@ -44,6 +48,30 @@ module.exports = (server, app) => {
44 }); 48 });
45 }) 49 })
46 } 50 }
51 +
52 + const req_D_API = () =>{
53 +
54 + return new Promise((resolve, reject) => {
55 + requesting.get({
56 + // api를 요청할 주소 -- 시크릿키 입력, 경기도 수원시 설정
57 + url: `http://taas.koroad.or.kr/data/rest/accident/death?authKey=${secret_D_key}searchYear=2018&sido=1300&guGun=1302&type=json`,
58 + json: true
59 + },
60 + //api에게 응답 받았을때 실행되는 callback function
61 + function (err, api_res, api_body) {
62 + //err 존재시 promise reject 호출
63 + if (err) reject(err);
64 +
65 + // api의 response이 있을경우 promise resolve 호출
66 + if (api_res) {
67 + console.log("calling api");
68 + resolve(api_body);
69 + }
70 + });
71 + })
72 + }
73 +
74 +
47 const API_bundle = async () => { 75 const API_bundle = async () => {
48 76
49 try { 77 try {
...@@ -52,7 +80,8 @@ module.exports = (server, app) => { ...@@ -52,7 +80,8 @@ module.exports = (server, app) => {
52 Heat_index = await req_API("index", "heat"); //열지수 80 Heat_index = await req_API("index", "heat"); //열지수
53 Discomport_index = await req_API("index", "th"); //불쾌지수 81 Discomport_index = await req_API("index", "th"); //불쾌지수
54 Ultra_Violet_index = await req_API("index", "uv"); //자외선지수 82 Ultra_Violet_index = await req_API("index", "uv"); //자외선지수
55 - 83 + let kts = await req_D_API();
84 +
56 info = { 85 info = {
57 heat: Heat_index.weather.wIndex.heatIndex[0].current.index, //열지수 86 heat: Heat_index.weather.wIndex.heatIndex[0].current.index, //열지수
58 sensible_temperature: Sensible_T.weather.wIndex.wctIndex[0].current.index, //체감온도 87 sensible_temperature: Sensible_T.weather.wIndex.wctIndex[0].current.index, //체감온도
...@@ -66,10 +95,13 @@ module.exports = (server, app) => { ...@@ -66,10 +95,13 @@ module.exports = (server, app) => {
66 warning: Current_Weather.common.alertYn, //현재 특보 유무 95 warning: Current_Weather.common.alertYn, //현재 특보 유무
67 typhoon: Current_Weather.common.stormYn, //현재 태풍 96 typhoon: Current_Weather.common.stormYn, //현재 태풍
68 time: Current_Weather.weather.minutely[0].timeObservation, // 불러온 시각 97 time: Current_Weather.weather.minutely[0].timeObservation, // 불러온 시각
69 - death_prob: 0 //확률 98 + death_prob: 0, //확률
99 +
70 } 100 }
71 console.log("API INFO \n", info); 101 console.log("API INFO \n", info);
72 102
103 +
104 +
73 // ------------------------------ death_prob 정의 ------------------------------ 105 // ------------------------------ death_prob 정의 ------------------------------
74 106
75 info.death_prob += info.sky.substr(5) * 1 //하늘 상태에 따라 확률 증가 107 info.death_prob += info.sky.substr(5) * 1 //하늘 상태에 따라 확률 증가
......