Ubuntu

add city, county, village / convert lat, lon

No preview for this file type
1 +const db = require('./db.js');
2 +const secret_key = require('./keys/api_option').key;
3 +const requesting = require('request');
4 +const key = require('./keys/api_map').key;
5 +const lat = "37.239795";
6 +const lon = "127.083240";
7 +//const city = client_data.city;
8 +//const county = client_data.county;
9 +//const village = client_data.village;
10 +module.exports = (server, app) => {
11 +
12 + const io = require('socket.io')(server, {
13 + transports: ['websocket'] // websocket 사용시 polling 사용을 배제하고 안정적인 websocket만 사용함
14 + });
15 + //명시적 형 선언
16 + let Current_Weather = {};
17 + let Sensible_T = {};
18 + let Heat_index = {};
19 + let Discomport_index = {};
20 + let Ultra_Violet_index = {};
21 + let sending_to_client_info = {};
22 + let client_send = {};
23 + let client_name = "";
24 + let client_birth ;
25 + let Destiny;
26 + let sql;
27 + let city;
28 + let county;
29 + let village;
30 + let info = {};
31 + let query;
32 +
33 + const req_API = (when, what) => {
34 + //async await 사용하기 위하여 promise 사용
35 + return new Promise((resolve, reject) => {
36 + requesting.get({
37 + // api를 요청할 주소 -- 시크릿키,위도,경도 입력
38 + url: encodeURI(`https://api2.sktelecom.com/weather/${when}/${what}?version=1&city=${city}&county=${county}&village=${village}&appKey=${secret_key}`),
39 + json: true
40 + },
41 + //api에게 응답 받았을때 실행되는 callback function
42 + function (err, api_res, api_body) {
43 + //err 존재시 promise reject 호출
44 + if (err) reject(err);
45 +
46 + // api의 response이 있을경우 promise resolve 호출
47 + if (api_res) {
48 + console.log("calling api");
49 + resolve(api_body);
50 + }
51 + });
52 + })
53 +
54 + }
55 +
56 + const API_bundle = async () => {
57 +
58 + try {
59 + Current_Weather = await req_API("current", "minutely"); //현재날씨 (분별)
60 + Sensible_T = await req_API("index", "wct"); //체감온도
61 + Heat_index = await req_API("index", "heat"); //열지수
62 + Discomport_index = await req_API("index", "th"); //불쾌지수
63 + Ultra_Violet_index = await req_API("index", "uv"); //자외선지수
64 +
65 + info = {
66 + heat: Heat_index.weather.wIndex.heatIndex[0].current.index, //열지수
67 + sensible_temperature: Sensible_T.weather.wIndex.wctIndex[0].current.index, //체감온도
68 + discomport: Discomport_index.weather.wIndex.thIndex[0].current.index, //불쾌지수
69 + UV: Ultra_Violet_index.weather.wIndex.uvindex[0].day01.index, //자외선지수
70 + windspd: Current_Weather.weather.minutely[0].wind.wspd, //바람 속도
71 + sky: Current_Weather.weather.minutely[0].sky.code, //하늘 상태
72 + rain: Current_Weather.weather.minutely[0].rain.last24hour, //강수량
73 + current_temperature: Current_Weather.weather.minutely[0].temperature.tc, //현재 온도
74 + lightning: Current_Weather.weather.minutely[0].lightning, //현재 낙뢰
75 + warning: Current_Weather.common.alertYn, //현재 특유무
76 + typhoon: Current_Weather.common.stormYn, //현재 태풍
77 + time: Current_Weather.weather.minutely[0].timeObservation, // 불러온 시각
78 + death_prob: 0 //확률
79 + }
80 + console.log("API INFO \n", info);
81 +
82 + // ------------------------------ death_prob 정의 ------------------------------
83 +
84 + info.death_prob += info.sky.substr(5) * 1 //하늘 상태에 따라 확률 증가
85 +
86 + if (info.lightning === 1) //낙뢰시에 확률 증가
87 + info.death_prob += 1.5;
88 + if (info.typhoon === "Y") //태풍시에 확률 증가
89 + info.death_prob += 1.5;
90 + if (info.warning === "Y") // 특보 발령시 확률 증가
91 + info.death_prob += 1
92 +
93 + //죽을 확률 계산(내맘대로 커스텀)
94 + info.death_prob = (
95 + (info.heat / 50) + (Math.abs(info.sensible_temperature - 15) / 10) + (info.discomport / 10) + (info.UV / 10)
96 + + info.windspd*1 + (info.rain / 10) + (Math.abs(info.current_temperature - 15) / 10)
97 + );
98 +
99 + //이벤트 기반으로 일정 시간 간격으로 클라이언트에게 보낼 정보
100 + client_send = {
101 + time: info.time,
102 + wind: info.windspd,
103 + temperature: info.current_temperature,
104 + rain: info.rain,
105 + death: info.death_prob
106 + };
107 + function getRandom_add_prob(min, max) {
108 + return Math.random() * (max - min) + min;
109 + }
110 +
111 +
112 + // 심장이 크게 뛰며 확률이 증가하거나 감소 할 수 있음
113 + Math.random() * 2 >= 1 ? client_send.death += getRandom_add_prob(0,5) : client_send.death -= getRandom_add_prob(0,5) ;
114 +
115 +
116 + //운명의 장난으로 죽을 확률이 증가하거나 감소함
117 + const rand = Math.floor(Math.random() * 6) //생년월일 중 한자리 뽑음
118 +
119 + Destiny=client_birth.charAt(rand)/3; //명시적 형 변환
120 + if(Destiny==0)Destiny=1; //사용자 잘못 입력했을때 예외처리
121 + Math.random() * 2 >= 1 ? client_send.death += Destiny : client_send.death -= Destiny ;
122 +
123 +
124 + //만약 날이 너무 안좋아서 확률이 100을 넘긴다면 100으로 예외처리
125 + if (client_send.death >= 100) {
126 + client_send.death = 100;
127 + }
128 +
129 + console.log("client send data \n",client_send)
130 +
131 + app.get("socket").emit("weatherInfo_minutely_send_to_client", client_send); // 클라이언트에게 정보 담아서 이벤트 발산
132 + console.log("emit");
133 +
134 + //db에 저장
135 + sql = "INSERT INTO weatherInfo (time,wind,temperature,rain,prob) VALUES (?,?,?,?,?)";
136 + db.query(sql, [client_send.time, client_send.wind, client_send.temperature, client_send.rain, client_send.death], (err, result) => {
137 + if (err) console.log(err);
138 + })
139 + } catch (err) { //promise err or try err catch
140 + console.log("================Error Occured !!================\n", err);
141 + }
142 + }
143 +
144 + let call_interval;
145 +
146 + const Start_Interval = (second, CALL) => {
147 + CALL(); //처음 불러올때 한번 호출하고
148 + call_interval = setInterval(CALL, second * 1000); //그 후에 1분마다 호출
149 + }
150 +
151 + io.on('connection', (socket) => { //프론트와 소켓 연결시 이벤트 루프 동작
152 +
153 + app.set("socket", socket);
154 + socket.on("connection", (client_data) => {
155 + console.log("SOCKET CONNECTED");
156 + client_name = client_data.name;
157 + client_birth = client_data.birth;
158 + city = client_data.city;
159 + county = client_data.county;
160 + village = client_data.village;
161 + query = city+' '+county+' '+village;
162 +var headers = {
163 + 'Authorization': 'KakaoAK '+ key
164 +};
165 +
166 +var options = {
167 + url: encodeURI('https://dapi.kakao.com/v2/local/search/address.json?query=' + query),
168 + headers: headers
169 +};
170 +
171 +function callback(error, response, body) {
172 + if (!error && response.statusCode == 200) {
173 + console.log(body);
174 + console.log(body.documents[1].y);
175 + }
176 +// console.log(response);
177 +}
178 +
179 +requesting.get(options, callback);
180 +
181 +
182 +
183 + Start_Interval(60, API_bundle); //소켓 연결후 interval 활성화하여 1분마다 API 호출
184 +
185 + });
186 +
187 + socket.on('disconnect', (reason) => {
188 + console.log("disconnected");
189 + clearInterval(call_interval); //연결 종료시 interval 해제
190 + })
191 + })
192 +
193 +}
...@@ -20,9 +20,8 @@ app.use(express.urlencoded({ extended: false })); ...@@ -20,9 +20,8 @@ app.use(express.urlencoded({ extended: false }));
20 app.use(cookieParser()); 20 app.use(cookieParser());
21 app.use('/',express.static(path.join(__dirname, 'public'))); 21 app.use('/',express.static(path.join(__dirname, 'public')));
22 app.use('/',express.static(path.join(__dirname, 'code'))); 22 app.use('/',express.static(path.join(__dirname, 'code')));
23 -app.use('/name/:name/birth',express.static(path.join(__dirname, 'public'))); 23 +app.use('/name/:name/birth/:birth/city/:city/county/:county/village/:village',express.static(path.join(__dirname, 'public')));
24 -app.use('/name/:name/birth',express.static(path.join(__dirname, 'code'))); 24 +app.use('/name/:name/birth/:birth/city/:city/county/:county/village/:village',express.static(path.join(__dirname, 'code')));
25 -
26 app.use('/', indexRouter); 25 app.use('/', indexRouter);
27 app.use('/users', usersRouter); 26 app.use('/users', usersRouter);
28 27
......
No preview for this file type
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 requesting = require('request'); 3 const requesting = require('request');
4 -const lat = "37.239795"; 4 +const key = require('./keys/api_map').key;
5 -const lon = "127.083240"; 5 +
6 +//const city = client_data.city;
7 +//const county = client_data.county;
8 +//const village = client_data.village;
6 module.exports = (server, app) => { 9 module.exports = (server, app) => {
7 10
8 const io = require('socket.io')(server, { 11 const io = require('socket.io')(server, {
...@@ -20,15 +23,20 @@ module.exports = (server, app) => { ...@@ -20,15 +23,20 @@ module.exports = (server, app) => {
20 let client_birth ; 23 let client_birth ;
21 let Destiny; 24 let Destiny;
22 let sql; 25 let sql;
23 - 26 + let city;
24 - let info = {} 27 + let county;
28 + let village;
29 + let info = {};
30 + let query;
31 + let lat;
32 + let lon;
25 33
26 const req_API = (when, what) => { 34 const req_API = (when, what) => {
27 //async await 사용하기 위하여 promise 사용 35 //async await 사용하기 위하여 promise 사용
28 return new Promise((resolve, reject) => { 36 return new Promise((resolve, reject) => {
29 requesting.get({ 37 requesting.get({
30 // api를 요청할 주소 -- 시크릿키,위도,경도 입력 38 // api를 요청할 주소 -- 시크릿키,위도,경도 입력
31 - url: `https://api2.sktelecom.com/weather/${when}/${what}?lat=${lat}&lon=${lon}&appKey=${secret_key}`, 39 + url: encodeURI(`https://api2.sktelecom.com/weather/${when}/${what}?version=1&lat=${lat}&lon=${lon}&appKey=${secret_key}`),
32 json: true 40 json: true
33 }, 41 },
34 //api에게 응답 받았을때 실행되는 callback function 42 //api에게 응답 받았을때 실행되는 callback function
...@@ -45,10 +53,12 @@ module.exports = (server, app) => { ...@@ -45,10 +53,12 @@ module.exports = (server, app) => {
45 }) 53 })
46 54
47 } 55 }
56 +
48 const API_bundle = async () => { 57 const API_bundle = async () => {
49 58
50 try { 59 try {
51 Current_Weather = await req_API("current", "minutely"); //현재날씨 (분별) 60 Current_Weather = await req_API("current", "minutely"); //현재날씨 (분별)
61 +console.log(Current_Weather);
52 Sensible_T = await req_API("index", "wct"); //체감온도 62 Sensible_T = await req_API("index", "wct"); //체감온도
53 Heat_index = await req_API("index", "heat"); //열지수 63 Heat_index = await req_API("index", "heat"); //열지수
54 Discomport_index = await req_API("index", "th"); //불쾌지수 64 Discomport_index = await req_API("index", "th"); //불쾌지수
...@@ -64,7 +74,7 @@ module.exports = (server, app) => { ...@@ -64,7 +74,7 @@ module.exports = (server, app) => {
64 rain: Current_Weather.weather.minutely[0].rain.last24hour, //강수량 74 rain: Current_Weather.weather.minutely[0].rain.last24hour, //강수량
65 current_temperature: Current_Weather.weather.minutely[0].temperature.tc, //현재 온도 75 current_temperature: Current_Weather.weather.minutely[0].temperature.tc, //현재 온도
66 lightning: Current_Weather.weather.minutely[0].lightning, //현재 낙뢰 76 lightning: Current_Weather.weather.minutely[0].lightning, //현재 낙뢰
67 - warning: Current_Weather.common.alertYn, //현재 특유무 77 + warning: Current_Weather.common.alertYn, //현재 특유무
68 typhoon: Current_Weather.common.stormYn, //현재 태풍 78 typhoon: Current_Weather.common.stormYn, //현재 태풍
69 time: Current_Weather.weather.minutely[0].timeObservation, // 불러온 시각 79 time: Current_Weather.weather.minutely[0].timeObservation, // 불러온 시각
70 death_prob: 0 //확률 80 death_prob: 0 //확률
...@@ -146,7 +156,34 @@ module.exports = (server, app) => { ...@@ -146,7 +156,34 @@ module.exports = (server, app) => {
146 socket.on("connection", (client_data) => { 156 socket.on("connection", (client_data) => {
147 console.log("SOCKET CONNECTED"); 157 console.log("SOCKET CONNECTED");
148 client_name = client_data.name; 158 client_name = client_data.name;
149 - client_birth = client_data.birth; 159 + client_birth = client_data.birth;
160 + city = client_data.city;
161 + county = client_data.county;
162 + village = client_data.village;
163 + query = city+' '+county+' '+village;
164 +var headers = {
165 + 'Authorization': 'KakaoAK '+ key
166 +};
167 +
168 +var options = {
169 + url: encodeURI('https://dapi.kakao.com/v2/local/search/address.json?query=' + query),
170 + headers: headers,
171 + json : true
172 +};
173 +
174 +function callback(error, response, body) {
175 + if (!error && response.statusCode == 200) {
176 + console.log(body);
177 + lat = body.documents[0].x;
178 + lat = lat.substring(0, 6);
179 +console.log(lat);
180 + lon = body.documents[0].y;
181 + lon = lon.substring(0, 6);
182 + }
183 +
184 +}
185 +
186 + requesting.get(options, callback);
150 Start_Interval(60, API_bundle); //소켓 연결후 interval 활성화하여 1분마다 API 호출 187 Start_Interval(60, API_bundle); //소켓 연결후 interval 활성화하여 1분마다 API 호출
151 188
152 }); 189 });
......
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
7 + "abbrev": {
8 + "version": "1.1.1",
9 + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10 + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
11 + },
7 "accepts": { 12 "accepts": {
8 "version": "1.3.5", 13 "version": "1.3.5",
9 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", 14 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
...@@ -29,6 +34,25 @@ ...@@ -29,6 +34,25 @@
29 "uri-js": "^4.2.2" 34 "uri-js": "^4.2.2"
30 } 35 }
31 }, 36 },
37 + "ansi-regex": {
38 + "version": "2.1.1",
39 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
40 + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
41 + },
42 + "aproba": {
43 + "version": "1.2.0",
44 + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
45 + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
46 + },
47 + "are-we-there-yet": {
48 + "version": "1.1.5",
49 + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
50 + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
51 + "requires": {
52 + "delegates": "^1.0.0",
53 + "readable-stream": "^2.0.6"
54 + }
55 + },
32 "array-flatten": { 56 "array-flatten": {
33 "version": "1.1.1", 57 "version": "1.1.1",
34 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 58 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
...@@ -77,6 +101,11 @@ ...@@ -77,6 +101,11 @@
77 "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", 101 "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
78 "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" 102 "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
79 }, 103 },
104 + "balanced-match": {
105 + "version": "1.0.0",
106 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
107 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
108 + },
80 "base64-arraybuffer": { 109 "base64-arraybuffer": {
81 "version": "0.1.5", 110 "version": "0.1.5",
82 "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", 111 "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
...@@ -121,6 +150,14 @@ ...@@ -121,6 +150,14 @@
121 "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", 150 "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
122 "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM=" 151 "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM="
123 }, 152 },
153 + "block-stream": {
154 + "version": "0.0.9",
155 + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
156 + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
157 + "requires": {
158 + "inherits": "~2.0.0"
159 + }
160 + },
124 "body-parser": { 161 "body-parser": {
125 "version": "1.18.3", 162 "version": "1.18.3",
126 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", 163 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
...@@ -138,6 +175,15 @@ ...@@ -138,6 +175,15 @@
138 "type-is": "~1.6.16" 175 "type-is": "~1.6.16"
139 } 176 }
140 }, 177 },
178 + "brace-expansion": {
179 + "version": "1.1.11",
180 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
181 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
182 + "requires": {
183 + "balanced-match": "^1.0.0",
184 + "concat-map": "0.0.1"
185 + }
186 + },
141 "bytes": { 187 "bytes": {
142 "version": "3.0.0", 188 "version": "3.0.0",
143 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 189 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
...@@ -158,6 +204,11 @@ ...@@ -158,6 +204,11 @@
158 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 204 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
159 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 205 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
160 }, 206 },
207 + "code-point-at": {
208 + "version": "1.1.0",
209 + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
210 + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
211 + },
161 "combined-stream": { 212 "combined-stream": {
162 "version": "1.0.7", 213 "version": "1.0.7",
163 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", 214 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
...@@ -203,6 +254,16 @@ ...@@ -203,6 +254,16 @@
203 "vary": "~1.1.2" 254 "vary": "~1.1.2"
204 } 255 }
205 }, 256 },
257 + "concat-map": {
258 + "version": "0.0.1",
259 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
260 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
261 + },
262 + "console-control-strings": {
263 + "version": "1.1.0",
264 + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
265 + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
266 + },
206 "content-disposition": { 267 "content-disposition": {
207 "version": "0.5.2", 268 "version": "0.5.2",
208 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 269 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
...@@ -242,6 +303,16 @@ ...@@ -242,6 +303,16 @@
242 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 303 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
243 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 304 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
244 }, 305 },
306 + "curl-request": {
307 + "version": "1.1.1",
308 + "resolved": "https://registry.npmjs.org/curl-request/-/curl-request-1.1.1.tgz",
309 + "integrity": "sha512-Rna1zumGl5YwwGEmQTggWGFogUjY6BGXrco7B0/o6WKubNS4vWmjoOSFXtNrPm5ffehOM09DgRw+QeA0n9a+9Q==",
310 + "requires": {
311 + "net": "^1.0.2",
312 + "node-libcurl": "^1.2.0",
313 + "querystring": "^0.2.0"
314 + }
315 + },
245 "dashdash": { 316 "dashdash": {
246 "version": "1.14.1", 317 "version": "1.14.1",
247 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 318 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
...@@ -273,6 +344,11 @@ ...@@ -273,6 +344,11 @@
273 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 344 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
274 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 345 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
275 }, 346 },
347 + "delegates": {
348 + "version": "1.0.0",
349 + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
350 + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
351 + },
276 "depd": { 352 "depd": {
277 "version": "1.1.2", 353 "version": "1.1.2",
278 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 354 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
...@@ -333,7 +409,7 @@ ...@@ -333,7 +409,7 @@
333 "debug": { 409 "debug": {
334 "version": "3.1.0", 410 "version": "3.1.0",
335 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 411 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
336 - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 412 + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
337 "requires": { 413 "requires": {
338 "ms": "2.0.0" 414 "ms": "2.0.0"
339 } 415 }
...@@ -361,7 +437,7 @@ ...@@ -361,7 +437,7 @@
361 "debug": { 437 "debug": {
362 "version": "3.1.0", 438 "version": "3.1.0",
363 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 439 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
364 - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 440 + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
365 "requires": { 441 "requires": {
366 "ms": "2.0.0" 442 "ms": "2.0.0"
367 } 443 }
...@@ -515,6 +591,47 @@ ...@@ -515,6 +591,47 @@
515 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 591 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
516 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 592 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
517 }, 593 },
594 + "fs-extra": {
595 + "version": "5.0.0",
596 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
597 + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
598 + "requires": {
599 + "graceful-fs": "^4.1.2",
600 + "jsonfile": "^4.0.0",
601 + "universalify": "^0.1.0"
602 + }
603 + },
604 + "fs.realpath": {
605 + "version": "1.0.0",
606 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
607 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
608 + },
609 + "fstream": {
610 + "version": "1.0.12",
611 + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
612 + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
613 + "requires": {
614 + "graceful-fs": "^4.1.2",
615 + "inherits": "~2.0.0",
616 + "mkdirp": ">=0.5 0",
617 + "rimraf": "2"
618 + }
619 + },
620 + "gauge": {
621 + "version": "2.7.4",
622 + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
623 + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
624 + "requires": {
625 + "aproba": "^1.0.3",
626 + "console-control-strings": "^1.0.0",
627 + "has-unicode": "^2.0.0",
628 + "object-assign": "^4.1.0",
629 + "signal-exit": "^3.0.0",
630 + "string-width": "^1.0.1",
631 + "strip-ansi": "^3.0.1",
632 + "wide-align": "^1.1.0"
633 + }
634 + },
518 "getpass": { 635 "getpass": {
519 "version": "0.1.7", 636 "version": "0.1.7",
520 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 637 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -523,6 +640,24 @@ ...@@ -523,6 +640,24 @@
523 "assert-plus": "^1.0.0" 640 "assert-plus": "^1.0.0"
524 } 641 }
525 }, 642 },
643 + "glob": {
644 + "version": "7.1.4",
645 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
646 + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
647 + "requires": {
648 + "fs.realpath": "^1.0.0",
649 + "inflight": "^1.0.4",
650 + "inherits": "2",
651 + "minimatch": "^3.0.4",
652 + "once": "^1.3.0",
653 + "path-is-absolute": "^1.0.0"
654 + }
655 + },
656 + "graceful-fs": {
657 + "version": "4.1.15",
658 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
659 + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
660 + },
526 "har-schema": { 661 "har-schema": {
527 "version": "2.0.0", 662 "version": "2.0.0",
528 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 663 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
...@@ -550,6 +685,11 @@ ...@@ -550,6 +685,11 @@
550 "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", 685 "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
551 "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" 686 "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
552 }, 687 },
688 + "has-unicode": {
689 + "version": "2.0.1",
690 + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
691 + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
692 + },
553 "helmet": { 693 "helmet": {
554 "version": "3.15.0", 694 "version": "3.15.0",
555 "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.15.0.tgz", 695 "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.15.0.tgz",
...@@ -641,6 +781,15 @@ ...@@ -641,6 +781,15 @@
641 "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 781 "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
642 "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" 782 "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
643 }, 783 },
784 + "inflight": {
785 + "version": "1.0.6",
786 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
787 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
788 + "requires": {
789 + "once": "^1.3.0",
790 + "wrappy": "1"
791 + }
792 + },
644 "inherits": { 793 "inherits": {
645 "version": "2.0.3", 794 "version": "2.0.3",
646 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 795 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
...@@ -651,6 +800,14 @@ ...@@ -651,6 +800,14 @@
651 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", 800 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
652 "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" 801 "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
653 }, 802 },
803 + "is-fullwidth-code-point": {
804 + "version": "1.0.0",
805 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
806 + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
807 + "requires": {
808 + "number-is-nan": "^1.0.0"
809 + }
810 + },
654 "is-typedarray": { 811 "is-typedarray": {
655 "version": "1.0.0", 812 "version": "1.0.0",
656 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 813 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -661,6 +818,11 @@ ...@@ -661,6 +818,11 @@
661 "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", 818 "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
662 "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" 819 "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
663 }, 820 },
821 + "isexe": {
822 + "version": "2.0.0",
823 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
824 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
825 + },
664 "isstream": { 826 "isstream": {
665 "version": "0.1.2", 827 "version": "0.1.2",
666 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 828 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
...@@ -686,6 +848,14 @@ ...@@ -686,6 +848,14 @@
686 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 848 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
687 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 849 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
688 }, 850 },
851 + "jsonfile": {
852 + "version": "4.0.0",
853 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
854 + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
855 + "requires": {
856 + "graceful-fs": "^4.1.6"
857 + }
858 + },
689 "jsprim": { 859 "jsprim": {
690 "version": "1.4.1", 860 "version": "1.4.1",
691 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 861 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
...@@ -730,6 +900,27 @@ ...@@ -730,6 +900,27 @@
730 "mime-db": "~1.37.0" 900 "mime-db": "~1.37.0"
731 } 901 }
732 }, 902 },
903 + "minimatch": {
904 + "version": "3.0.4",
905 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
906 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
907 + "requires": {
908 + "brace-expansion": "^1.1.7"
909 + }
910 + },
911 + "minimist": {
912 + "version": "0.0.8",
913 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
914 + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
915 + },
916 + "mkdirp": {
917 + "version": "0.5.1",
918 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
919 + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
920 + "requires": {
921 + "minimist": "0.0.8"
922 + }
923 + },
733 "morgan": { 924 "morgan": {
734 "version": "1.9.1", 925 "version": "1.9.1",
735 "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", 926 "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
...@@ -758,21 +949,521 @@ ...@@ -758,21 +949,521 @@
758 "sqlstring": "2.3.1" 949 "sqlstring": "2.3.1"
759 } 950 }
760 }, 951 },
952 + "nan": {
953 + "version": "2.10.0",
954 + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
955 + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA=="
956 + },
761 "negotiator": { 957 "negotiator": {
762 "version": "0.6.1", 958 "version": "0.6.1",
763 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 959 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
764 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 960 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
765 }, 961 },
962 + "net": {
963 + "version": "1.0.2",
964 + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz",
965 + "integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g="
966 + },
766 "nocache": { 967 "nocache": {
767 "version": "2.0.0", 968 "version": "2.0.0",
768 "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", 969 "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz",
769 "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" 970 "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA="
770 }, 971 },
972 + "node-gyp": {
973 + "version": "3.8.0",
974 + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
975 + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
976 + "requires": {
977 + "fstream": "^1.0.0",
978 + "glob": "^7.0.3",
979 + "graceful-fs": "^4.1.2",
980 + "mkdirp": "^0.5.0",
981 + "nopt": "2 || 3",
982 + "npmlog": "0 || 1 || 2 || 3 || 4",
983 + "osenv": "0",
984 + "request": "^2.87.0",
985 + "rimraf": "2",
986 + "semver": "~5.3.0",
987 + "tar": "^2.0.0",
988 + "which": "1"
989 + }
990 + },
991 + "node-libcurl": {
992 + "version": "1.3.3",
993 + "resolved": "https://registry.npmjs.org/node-libcurl/-/node-libcurl-1.3.3.tgz",
994 + "integrity": "sha512-8YqAm45I5piDHjjx2aXGBNB5cVM9dwmQZ2anAJ2JmCXVdCtvB6cZRB1MArU7e67wQLVt1+L/bw0SD4sZiyT08w==",
995 + "requires": {
996 + "debug": "3.1.0",
997 + "fs-extra": "5.0.0",
998 + "nan": "2.10.0",
999 + "node-gyp": "3.8.0",
1000 + "node-pre-gyp": "0.11.0",
1001 + "npmlog": "4.1.2"
1002 + },
1003 + "dependencies": {
1004 + "abbrev": {
1005 + "version": "1.1.1",
1006 + "bundled": true
1007 + },
1008 + "ansi-regex": {
1009 + "version": "2.1.1",
1010 + "bundled": true
1011 + },
1012 + "aproba": {
1013 + "version": "1.2.0",
1014 + "bundled": true
1015 + },
1016 + "are-we-there-yet": {
1017 + "version": "1.1.4",
1018 + "bundled": true,
1019 + "requires": {
1020 + "delegates": "^1.0.0",
1021 + "readable-stream": "^2.0.6"
1022 + }
1023 + },
1024 + "balanced-match": {
1025 + "version": "1.0.0",
1026 + "bundled": true
1027 + },
1028 + "brace-expansion": {
1029 + "version": "1.1.8",
1030 + "bundled": true,
1031 + "requires": {
1032 + "balanced-match": "^1.0.0",
1033 + "concat-map": "0.0.1"
1034 + }
1035 + },
1036 + "chownr": {
1037 + "version": "1.0.1",
1038 + "bundled": true
1039 + },
1040 + "code-point-at": {
1041 + "version": "1.1.0",
1042 + "bundled": true
1043 + },
1044 + "concat-map": {
1045 + "version": "0.0.1",
1046 + "bundled": true
1047 + },
1048 + "console-control-strings": {
1049 + "version": "1.1.0",
1050 + "bundled": true
1051 + },
1052 + "core-util-is": {
1053 + "version": "1.0.2",
1054 + "bundled": true
1055 + },
1056 + "debug": {
1057 + "version": "3.1.0",
1058 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1059 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1060 + "requires": {
1061 + "ms": "2.0.0"
1062 + }
1063 + },
1064 + "deep-extend": {
1065 + "version": "0.6.0",
1066 + "bundled": true
1067 + },
1068 + "delegates": {
1069 + "version": "1.0.0",
1070 + "bundled": true
1071 + },
1072 + "detect-libc": {
1073 + "version": "1.0.3",
1074 + "bundled": true
1075 + },
1076 + "fs-minipass": {
1077 + "version": "1.2.5",
1078 + "bundled": true,
1079 + "requires": {
1080 + "minipass": "^2.2.1"
1081 + }
1082 + },
1083 + "fs.realpath": {
1084 + "version": "1.0.0",
1085 + "bundled": true
1086 + },
1087 + "gauge": {
1088 + "version": "2.7.4",
1089 + "bundled": true,
1090 + "requires": {
1091 + "aproba": "^1.0.3",
1092 + "console-control-strings": "^1.0.0",
1093 + "has-unicode": "^2.0.0",
1094 + "object-assign": "^4.1.0",
1095 + "signal-exit": "^3.0.0",
1096 + "string-width": "^1.0.1",
1097 + "strip-ansi": "^3.0.1",
1098 + "wide-align": "^1.1.0"
1099 + }
1100 + },
1101 + "glob": {
1102 + "version": "7.1.2",
1103 + "bundled": true,
1104 + "requires": {
1105 + "fs.realpath": "^1.0.0",
1106 + "inflight": "^1.0.4",
1107 + "inherits": "2",
1108 + "minimatch": "^3.0.4",
1109 + "once": "^1.3.0",
1110 + "path-is-absolute": "^1.0.0"
1111 + }
1112 + },
1113 + "has-unicode": {
1114 + "version": "2.0.1",
1115 + "bundled": true
1116 + },
1117 + "ignore-walk": {
1118 + "version": "3.0.1",
1119 + "bundled": true,
1120 + "requires": {
1121 + "minimatch": "^3.0.4"
1122 + }
1123 + },
1124 + "inflight": {
1125 + "version": "1.0.6",
1126 + "bundled": true,
1127 + "requires": {
1128 + "once": "^1.3.0",
1129 + "wrappy": "1"
1130 + }
1131 + },
1132 + "inherits": {
1133 + "version": "2.0.3",
1134 + "bundled": true
1135 + },
1136 + "ini": {
1137 + "version": "1.3.5",
1138 + "bundled": true
1139 + },
1140 + "isarray": {
1141 + "version": "1.0.0",
1142 + "bundled": true
1143 + },
1144 + "minimatch": {
1145 + "version": "3.0.4",
1146 + "bundled": true,
1147 + "requires": {
1148 + "brace-expansion": "^1.1.7"
1149 + }
1150 + },
1151 + "minimist": {
1152 + "version": "0.0.8",
1153 + "bundled": true
1154 + },
1155 + "minipass": {
1156 + "version": "2.3.4",
1157 + "bundled": true,
1158 + "requires": {
1159 + "safe-buffer": "^5.1.2",
1160 + "yallist": "^3.0.0"
1161 + },
1162 + "dependencies": {
1163 + "safe-buffer": {
1164 + "version": "5.1.2",
1165 + "bundled": true
1166 + }
1167 + }
1168 + },
1169 + "minizlib": {
1170 + "version": "1.1.0",
1171 + "bundled": true,
1172 + "requires": {
1173 + "minipass": "^2.2.1"
1174 + }
1175 + },
1176 + "mkdirp": {
1177 + "version": "0.5.1",
1178 + "bundled": true,
1179 + "requires": {
1180 + "minimist": "0.0.8"
1181 + }
1182 + },
1183 + "ms": {
1184 + "version": "2.0.0",
1185 + "bundled": true
1186 + },
1187 + "needle": {
1188 + "version": "2.2.2",
1189 + "bundled": true,
1190 + "requires": {
1191 + "debug": "^2.1.2",
1192 + "iconv-lite": "^0.4.4",
1193 + "sax": "^1.2.4"
1194 + },
1195 + "dependencies": {
1196 + "debug": {
1197 + "version": "2.6.9",
1198 + "bundled": true,
1199 + "requires": {
1200 + "ms": "2.0.0"
1201 + }
1202 + },
1203 + "iconv-lite": {
1204 + "version": "0.4.23",
1205 + "bundled": true,
1206 + "requires": {
1207 + "safer-buffer": ">= 2.1.2 < 3"
1208 + }
1209 + }
1210 + }
1211 + },
1212 + "node-pre-gyp": {
1213 + "version": "0.11.0",
1214 + "bundled": true,
1215 + "requires": {
1216 + "detect-libc": "^1.0.2",
1217 + "mkdirp": "^0.5.1",
1218 + "needle": "^2.2.1",
1219 + "nopt": "^4.0.1",
1220 + "npm-packlist": "^1.1.6",
1221 + "npmlog": "^4.0.2",
1222 + "rc": "^1.2.7",
1223 + "rimraf": "^2.6.1",
1224 + "semver": "^5.3.0",
1225 + "tar": "^4"
1226 + },
1227 + "dependencies": {
1228 + "nopt": {
1229 + "version": "4.0.1",
1230 + "bundled": true,
1231 + "requires": {
1232 + "abbrev": "1",
1233 + "osenv": "^0.1.4"
1234 + }
1235 + },
1236 + "safe-buffer": {
1237 + "version": "5.1.2",
1238 + "bundled": true
1239 + },
1240 + "tar": {
1241 + "version": "4.4.6",
1242 + "bundled": true,
1243 + "requires": {
1244 + "chownr": "^1.0.1",
1245 + "fs-minipass": "^1.2.5",
1246 + "minipass": "^2.3.3",
1247 + "minizlib": "^1.1.0",
1248 + "mkdirp": "^0.5.0",
1249 + "safe-buffer": "^5.1.2",
1250 + "yallist": "^3.0.2"
1251 + }
1252 + }
1253 + }
1254 + },
1255 + "npm-bundled": {
1256 + "version": "1.0.5",
1257 + "bundled": true
1258 + },
1259 + "npm-packlist": {
1260 + "version": "1.1.11",
1261 + "bundled": true,
1262 + "requires": {
1263 + "ignore-walk": "^3.0.1",
1264 + "npm-bundled": "^1.0.1"
1265 + }
1266 + },
1267 + "npmlog": {
1268 + "version": "4.1.2",
1269 + "bundled": true,
1270 + "requires": {
1271 + "are-we-there-yet": "~1.1.2",
1272 + "console-control-strings": "~1.1.0",
1273 + "gauge": "~2.7.3",
1274 + "set-blocking": "~2.0.0"
1275 + }
1276 + },
1277 + "number-is-nan": {
1278 + "version": "1.0.1",
1279 + "bundled": true
1280 + },
1281 + "object-assign": {
1282 + "version": "4.1.1",
1283 + "bundled": true
1284 + },
1285 + "once": {
1286 + "version": "1.4.0",
1287 + "bundled": true,
1288 + "requires": {
1289 + "wrappy": "1"
1290 + }
1291 + },
1292 + "os-homedir": {
1293 + "version": "1.0.2",
1294 + "bundled": true
1295 + },
1296 + "os-tmpdir": {
1297 + "version": "1.0.2",
1298 + "bundled": true
1299 + },
1300 + "osenv": {
1301 + "version": "0.1.4",
1302 + "bundled": true,
1303 + "requires": {
1304 + "os-homedir": "^1.0.0",
1305 + "os-tmpdir": "^1.0.0"
1306 + }
1307 + },
1308 + "path-is-absolute": {
1309 + "version": "1.0.1",
1310 + "bundled": true
1311 + },
1312 + "process-nextick-args": {
1313 + "version": "1.0.7",
1314 + "bundled": true
1315 + },
1316 + "rc": {
1317 + "version": "1.2.8",
1318 + "bundled": true,
1319 + "requires": {
1320 + "deep-extend": "^0.6.0",
1321 + "ini": "~1.3.0",
1322 + "minimist": "^1.2.0",
1323 + "strip-json-comments": "~2.0.1"
1324 + },
1325 + "dependencies": {
1326 + "minimist": {
1327 + "version": "1.2.0",
1328 + "bundled": true
1329 + }
1330 + }
1331 + },
1332 + "readable-stream": {
1333 + "version": "2.3.3",
1334 + "bundled": true,
1335 + "requires": {
1336 + "core-util-is": "~1.0.0",
1337 + "inherits": "~2.0.3",
1338 + "isarray": "~1.0.0",
1339 + "process-nextick-args": "~1.0.6",
1340 + "safe-buffer": "~5.1.1",
1341 + "string_decoder": "~1.0.3",
1342 + "util-deprecate": "~1.0.1"
1343 + }
1344 + },
1345 + "rimraf": {
1346 + "version": "2.6.2",
1347 + "bundled": true,
1348 + "requires": {
1349 + "glob": "^7.0.5"
1350 + }
1351 + },
1352 + "safe-buffer": {
1353 + "version": "5.1.1",
1354 + "bundled": true
1355 + },
1356 + "safer-buffer": {
1357 + "version": "2.1.2",
1358 + "bundled": true
1359 + },
1360 + "sax": {
1361 + "version": "1.2.4",
1362 + "bundled": true
1363 + },
1364 + "semver": {
1365 + "version": "5.5.0",
1366 + "bundled": true
1367 + },
1368 + "set-blocking": {
1369 + "version": "2.0.0",
1370 + "bundled": true
1371 + },
1372 + "signal-exit": {
1373 + "version": "3.0.2",
1374 + "bundled": true
1375 + },
1376 + "string-width": {
1377 + "version": "1.0.2",
1378 + "bundled": true,
1379 + "requires": {
1380 + "code-point-at": "^1.0.0",
1381 + "is-fullwidth-code-point": "^1.0.0",
1382 + "strip-ansi": "^3.0.0"
1383 + },
1384 + "dependencies": {
1385 + "is-fullwidth-code-point": {
1386 + "version": "1.0.0",
1387 + "bundled": true,
1388 + "requires": {
1389 + "number-is-nan": "^1.0.0"
1390 + }
1391 + }
1392 + }
1393 + },
1394 + "string_decoder": {
1395 + "version": "1.0.3",
1396 + "bundled": true,
1397 + "requires": {
1398 + "safe-buffer": "~5.1.0"
1399 + }
1400 + },
1401 + "strip-ansi": {
1402 + "version": "3.0.1",
1403 + "bundled": true,
1404 + "requires": {
1405 + "ansi-regex": "^2.0.0"
1406 + }
1407 + },
1408 + "strip-json-comments": {
1409 + "version": "2.0.1",
1410 + "bundled": true
1411 + },
1412 + "util-deprecate": {
1413 + "version": "1.0.2",
1414 + "bundled": true
1415 + },
1416 + "wide-align": {
1417 + "version": "1.1.2",
1418 + "bundled": true,
1419 + "requires": {
1420 + "string-width": "^1.0.2"
1421 + }
1422 + },
1423 + "wrappy": {
1424 + "version": "1.0.2",
1425 + "bundled": true
1426 + },
1427 + "yallist": {
1428 + "version": "3.0.2",
1429 + "bundled": true
1430 + }
1431 + }
1432 + },
1433 + "nopt": {
1434 + "version": "3.0.6",
1435 + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
1436 + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
1437 + "requires": {
1438 + "abbrev": "1"
1439 + }
1440 + },
1441 + "npmlog": {
1442 + "version": "4.1.2",
1443 + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
1444 + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
1445 + "requires": {
1446 + "are-we-there-yet": "~1.1.2",
1447 + "console-control-strings": "~1.1.0",
1448 + "gauge": "~2.7.3",
1449 + "set-blocking": "~2.0.0"
1450 + }
1451 + },
1452 + "number-is-nan": {
1453 + "version": "1.0.1",
1454 + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1455 + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
1456 + },
771 "oauth-sign": { 1457 "oauth-sign": {
772 "version": "0.9.0", 1458 "version": "0.9.0",
773 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1459 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
774 "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" 1460 "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU="
775 }, 1461 },
1462 + "object-assign": {
1463 + "version": "4.1.1",
1464 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1465 + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1466 + },
776 "object-component": { 1467 "object-component": {
777 "version": "0.0.3", 1468 "version": "0.0.3",
778 "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", 1469 "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
...@@ -791,6 +1482,33 @@ ...@@ -791,6 +1482,33 @@
791 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", 1482 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
792 "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" 1483 "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
793 }, 1484 },
1485 + "once": {
1486 + "version": "1.4.0",
1487 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1488 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1489 + "requires": {
1490 + "wrappy": "1"
1491 + }
1492 + },
1493 + "os-homedir": {
1494 + "version": "1.0.2",
1495 + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1496 + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
1497 + },
1498 + "os-tmpdir": {
1499 + "version": "1.0.2",
1500 + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1501 + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1502 + },
1503 + "osenv": {
1504 + "version": "0.1.5",
1505 + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1506 + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1507 + "requires": {
1508 + "os-homedir": "^1.0.0",
1509 + "os-tmpdir": "^1.0.0"
1510 + }
1511 + },
794 "parseqs": { 1512 "parseqs": {
795 "version": "0.0.5", 1513 "version": "0.0.5",
796 "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", 1514 "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
...@@ -812,6 +1530,11 @@ ...@@ -812,6 +1530,11 @@
812 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 1530 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
813 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 1531 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
814 }, 1532 },
1533 + "path-is-absolute": {
1534 + "version": "1.0.1",
1535 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1536 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1537 + },
815 "path-to-regexp": { 1538 "path-to-regexp": {
816 "version": "0.1.7", 1539 "version": "0.1.7",
817 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1540 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
...@@ -856,6 +1579,11 @@ ...@@ -856,6 +1579,11 @@
856 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1579 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
857 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1580 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
858 }, 1581 },
1582 + "querystring": {
1583 + "version": "0.2.0",
1584 + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1585 + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
1586 + },
859 "range-parser": { 1587 "range-parser": {
860 "version": "1.2.0", 1588 "version": "1.2.0",
861 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 1589 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
...@@ -925,6 +1653,14 @@ ...@@ -925,6 +1653,14 @@
925 "uuid": "^3.3.2" 1653 "uuid": "^3.3.2"
926 } 1654 }
927 }, 1655 },
1656 + "rimraf": {
1657 + "version": "2.6.3",
1658 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1659 + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1660 + "requires": {
1661 + "glob": "^7.1.3"
1662 + }
1663 + },
928 "safe-buffer": { 1664 "safe-buffer": {
929 "version": "5.1.2", 1665 "version": "5.1.2",
930 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1666 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
...@@ -935,6 +1671,11 @@ ...@@ -935,6 +1671,11 @@
935 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1671 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
936 "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" 1672 "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
937 }, 1673 },
1674 + "semver": {
1675 + "version": "5.3.0",
1676 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
1677 + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
1678 + },
938 "send": { 1679 "send": {
939 "version": "0.16.2", 1680 "version": "0.16.2",
940 "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", 1681 "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
...@@ -973,11 +1714,21 @@ ...@@ -973,11 +1714,21 @@
973 "send": "0.16.2" 1714 "send": "0.16.2"
974 } 1715 }
975 }, 1716 },
1717 + "set-blocking": {
1718 + "version": "2.0.0",
1719 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1720 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
1721 + },
976 "setprototypeof": { 1722 "setprototypeof": {
977 "version": "1.1.0", 1723 "version": "1.1.0",
978 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 1724 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
979 "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 1725 "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
980 }, 1726 },
1727 + "signal-exit": {
1728 + "version": "3.0.2",
1729 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1730 + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
1731 + },
981 "socket.io": { 1732 "socket.io": {
982 "version": "2.2.0", 1733 "version": "2.2.0",
983 "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz", 1734 "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.2.0.tgz",
...@@ -1088,6 +1839,16 @@ ...@@ -1088,6 +1839,16 @@
1088 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1839 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1089 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1840 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1090 }, 1841 },
1842 + "string-width": {
1843 + "version": "1.0.2",
1844 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
1845 + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
1846 + "requires": {
1847 + "code-point-at": "^1.0.0",
1848 + "is-fullwidth-code-point": "^1.0.0",
1849 + "strip-ansi": "^3.0.0"
1850 + }
1851 + },
1091 "string_decoder": { 1852 "string_decoder": {
1092 "version": "1.1.1", 1853 "version": "1.1.1",
1093 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1854 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
...@@ -1096,6 +1857,24 @@ ...@@ -1096,6 +1857,24 @@
1096 "safe-buffer": "5.1.2" 1857 "safe-buffer": "5.1.2"
1097 } 1858 }
1098 }, 1859 },
1860 + "strip-ansi": {
1861 + "version": "3.0.1",
1862 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1863 + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1864 + "requires": {
1865 + "ansi-regex": "^2.0.0"
1866 + }
1867 + },
1868 + "tar": {
1869 + "version": "2.2.2",
1870 + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
1871 + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
1872 + "requires": {
1873 + "block-stream": "*",
1874 + "fstream": "^1.0.12",
1875 + "inherits": "2"
1876 + }
1877 + },
1099 "to-array": { 1878 "to-array": {
1100 "version": "0.1.4", 1879 "version": "0.1.4",
1101 "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", 1880 "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
...@@ -1139,6 +1918,11 @@ ...@@ -1139,6 +1918,11 @@
1139 "mime-types": "~2.1.18" 1918 "mime-types": "~2.1.18"
1140 } 1919 }
1141 }, 1920 },
1921 + "universalify": {
1922 + "version": "0.1.2",
1923 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1924 + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
1925 + },
1142 "unpipe": { 1926 "unpipe": {
1143 "version": "1.0.0", 1927 "version": "1.0.0",
1144 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1928 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
...@@ -1182,6 +1966,27 @@ ...@@ -1182,6 +1966,27 @@
1182 "extsprintf": "^1.2.0" 1966 "extsprintf": "^1.2.0"
1183 } 1967 }
1184 }, 1968 },
1969 + "which": {
1970 + "version": "1.3.1",
1971 + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1972 + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1973 + "requires": {
1974 + "isexe": "^2.0.0"
1975 + }
1976 + },
1977 + "wide-align": {
1978 + "version": "1.1.3",
1979 + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
1980 + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
1981 + "requires": {
1982 + "string-width": "^1.0.2 || 2"
1983 + }
1984 + },
1985 + "wrappy": {
1986 + "version": "1.0.2",
1987 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1988 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1989 + },
1185 "ws": { 1990 "ws": {
1186 "version": "6.1.2", 1991 "version": "6.1.2",
1187 "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz", 1992 "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.2.tgz",
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
9 "body-parser": "^1.18.3", 9 "body-parser": "^1.18.3",
10 "compression": "^1.7.3", 10 "compression": "^1.7.3",
11 "cookie-parser": "~1.4.3", 11 "cookie-parser": "~1.4.3",
12 + "curl-request": "^1.1.1",
12 "date-utils": "^1.2.21", 13 "date-utils": "^1.2.21",
13 "debug": "~2.6.9", 14 "debug": "~2.6.9",
14 "ejs": "~2.5.7", 15 "ejs": "~2.5.7",
......
...@@ -5,9 +5,9 @@ var db = require('../lib/db'); ...@@ -5,9 +5,9 @@ var db = require('../lib/db');
5 /* GET home page. */ 5 /* GET home page. */
6 6
7 router.post('/starting' , (req,res) => { 7 router.post('/starting' , (req,res) => {
8 - res.redirect(`/name/${req.body.name}/birth/${req.body.birth}`); 8 + res.redirect(`/name/${req.body.name}/birth/${req.body.birth}/city/${req.body.city}/county/${req.body.county}/village/${req.body.village}`);
9 }) 9 })
10 -router.get('/name/:name/birth/:birth', (req,res) => { 10 +router.get('/name/:name/birth/:birth/city/:city/county/:county/village/:village', (req,res) => {
11 11
12 // 렌더링 변수 12 // 렌더링 변수
13 var time = new Array(); // 타임스탬프 13 var time = new Array(); // 타임스탬프
...@@ -21,6 +21,9 @@ router.get('/name/:name/birth/:birth', (req,res) => { ...@@ -21,6 +21,9 @@ router.get('/name/:name/birth/:birth', (req,res) => {
21 var count = 0; 21 var count = 0;
22 const name = req.params.name; 22 const name = req.params.name;
23 const birth = req.params.birth; 23 const birth = req.params.birth;
24 + const city = req.params.city;
25 + const county = req.params.county;
26 + const village = req.params.village;
24 27
25 // 이전 10분간 데이터 찾기 28 // 이전 10분간 데이터 찾기
26 sql = "SELECT * FROM weatherInfo WHERE time >= DATE_FORMAT(DATE_ADD(now(), INTERVAL -20 MINUTE), '%Y-%m-%d %H:%i:%s')"; 29 sql = "SELECT * FROM weatherInfo WHERE time >= DATE_FORMAT(DATE_ADD(now(), INTERVAL -20 MINUTE), '%Y-%m-%d %H:%i:%s')";
...@@ -62,7 +65,10 @@ router.get('/name/:name/birth/:birth', (req,res) => { ...@@ -62,7 +65,10 @@ router.get('/name/:name/birth/:birth', (req,res) => {
62 probArr, 65 probArr,
63 dataLen, 66 dataLen,
64 name, 67 name,
65 - birth 68 + birth,
69 + city,
70 + county,
71 + village
66 }); 72 });
67 } 73 }
68 }); 74 });
......
...@@ -61,7 +61,10 @@ ...@@ -61,7 +61,10 @@
61 <script type="text/javascript"> 61 <script type="text/javascript">
62 let client_data = { 62 let client_data = {
63 birth: "<%=birth%>", 63 birth: "<%=birth%>",
64 - name: "<%=name%>" 64 + name: "<%=name%>",
65 + city: "<%=city%>",
66 + county: "<%=county%>",
67 + village: "<%=village%>"
65 } 68 }
66 69
67 70
...@@ -630,4 +633,4 @@ plotOptions: { ...@@ -630,4 +633,4 @@ plotOptions: {
630 633
631 </body> 634 </body>
632 635
633 -</html>
...\ No newline at end of file ...\ No newline at end of file
636 +</html>
......
...@@ -85,7 +85,14 @@ ...@@ -85,7 +85,14 @@
85 &nbsp &nbsp&nbsp&nbsp 85 &nbsp &nbsp&nbsp&nbsp
86 <label>생년월일</label> 86 <label>생년월일</label>
87 <input type="text" name="birth" class="form-control" placeholder="971009" style="width:200px;"> 87 <input type="text" name="birth" class="form-control" placeholder="971009" style="width:200px;">
88 - <br><br><br> 88 +
89 +<label>현재 장소(시)</label>
90 + <input type="text" name="city" class="form-control" placeholder="서울" style="width:200px;">
91 + <label>현재 장소(구)(</label>
92 + <input type="text" name="county" class="form-control" placeholder="강남구" style="width:200px;">
93 + <label>현재 장소(동)</label>
94 + <input type="text" name="village" class="form-control" placeholder="삼성동" style="width:200px;">
95 +<br><br><br>
89 <input type="submit" value="시작하기" class="btn btn-default" style="font-family: 'Yeon Sung', cursive; width:100px;font-weight: bold; font-size: 18px; background-color: white;"> 96 <input type="submit" value="시작하기" class="btn btn-default" style="font-family: 'Yeon Sung', cursive; width:100px;font-weight: bold; font-size: 18px; background-color: white;">
90 </div> 97 </div>
91 </form> 98 </form>
...@@ -93,7 +100,7 @@ ...@@ -93,7 +100,7 @@
93 100
94 </div> 101 </div>
95 102
96 - <div id="footer">오픈소스SW개발 조민지 강환석 배희수</div> 103 + <div id="footer">오픈소스SW개발 조민지 강환석 배희수/ 개선_김가영 /</div>
97 </body> 104 </body>
98 105
99 -</html>
...\ No newline at end of file ...\ No newline at end of file
106 +</html>
......
...@@ -61,7 +61,10 @@ ...@@ -61,7 +61,10 @@
61 <script> 61 <script>
62 let client_data = { 62 let client_data = {
63 birth: "<%=birth%>", 63 birth: "<%=birth%>",
64 - name: "<%=name%>" 64 + name: "<%=name%>",
65 + city: "<%=city%>",
66 + county: "<%=county%>",
67 + village: "<%=village%>"
65 } 68 }
66 var socket = io.connect('/', { transports: ['websocket'], upgrade: false }); 69 var socket = io.connect('/', { transports: ['websocket'], upgrade: false });
67 socket.emit("connection", client_data); 70 socket.emit("connection", client_data);
...@@ -638,4 +641,4 @@ ...@@ -638,4 +641,4 @@
638 641
639 </body> 642 </body>
640 643
641 -</html>
...\ No newline at end of file ...\ No newline at end of file
644 +</html>
......