최현영
...@@ -4,7 +4,7 @@ const bodyParser = require('body-parser'); ...@@ -4,7 +4,7 @@ const bodyParser = require('body-parser');
4 var app = express(); 4 var app = express();
5 var static = require('serve-static'); 5 var static = require('serve-static');
6 //const xlsx = require('xlsx'); 6 //const xlsx = require('xlsx');
7 - 7 +const convert = require('xml-js');
8 8
9 const fs = require('fs'); 9 const fs = require('fs');
10 const path = require('path'); 10 const path = require('path');
...@@ -16,27 +16,24 @@ const TOKEN = 'sqNjA99TptppqvcoVFAnU7Kawsl+s7l+JgnZ7r2is97qrFQraIn0sLQ6mTsIPvXLG ...@@ -16,27 +16,24 @@ const TOKEN = 'sqNjA99TptppqvcoVFAnU7Kawsl+s7l+JgnZ7r2is97qrFQraIn0sLQ6mTsIPvXLG
16 const domain = "www.chyoss.tk" 16 const domain = "www.chyoss.tk"
17 const sslport = 23023; 17 const sslport = 23023;
18 18
19 -const feebuffer = fs.readFileSync('./whereur/Expressfee.json'); 19 +const feebuffer = fs.readFileSync('Expressfee.json');
20 const datafeejson = feebuffer.toString(); 20 const datafeejson = feebuffer.toString();
21 const feedata = JSON.parse(datafeejson); 21 const feedata = JSON.parse(datafeejson);
22 console.log("Expressfee.json 파일 읽기"); 22 console.log("Expressfee.json 파일 읽기");
23 23
24 -const namebuffer = fs.readFileSync('./whereur/ExpressIC.json'); 24 +const namebuffer = fs.readFileSync('ExpressIC.json');
25 const datanamejson = namebuffer.toString(); 25 const datanamejson = namebuffer.toString();
26 const namedata = JSON.parse(datanamejson); 26 const namedata = JSON.parse(datanamejson);
27 console.log("Expressname.json 파일 열기"); 27 console.log("Expressname.json 파일 열기");
28 28
29 29
30 -
31 -
32 -
33 app.use(bodyParser.json()); 30 app.use(bodyParser.json());
34 //전역변수 선언 31 //전역변수 선언
35 //var count = 0; 32 //var count = 0;
36 var userroadcongest = new Object(); 33 var userroadcongest = new Object();
37 var userroadcongestlength = new Object(); 34 var userroadcongestlength = new Object();
38 -var usercount = new Object(); 35 +var userroadcongestcount = new Object();
39 -//var roadnumberstringLength = 0; 36 +
40 37
41 //var jsonForforecast; 38 //var jsonForforecast;
42 // body-parser를 이용해 application/x-www-form-urlencoded 파싱 39 // body-parser를 이용해 application/x-www-form-urlencoded 파싱
...@@ -49,12 +46,28 @@ app.use(bodyParser.json()) ...@@ -49,12 +46,28 @@ app.use(bodyParser.json())
49 app.use('/public', static(path.join(__dirname, 'public'))); 46 app.use('/public', static(path.join(__dirname, 'public')));
50 47
51 var router = express.Router(); 48 var router = express.Router();
52 - 49 +
50 +app.set('view engine', 'ejs');
51 +
53 router.route('/process/maprealtime').get(function(req, res){ 52 router.route('/process/maprealtime').get(function(req, res){
54 console.log('process/mapreatime 호출됨'); 53 console.log('process/mapreatime 호출됨');
55 res.end(); 54 res.end();
56 }); 55 });
57 56
57 +// router.route('/process/mapconstruction').get(function(req, res){
58 +// console.log('proess/mapconstruction 호출됨');
59 +// });
60 +
61 +app.get('/construction', function(req, res){
62 + jsonConstrunction(function(object){
63 + var obj = object;
64 + console.log(obj);
65 + res.render('mapconstruction.ejs', {
66 + construnctionjson:obj
67 + });
68 + })
69 +})
70 +
58 71
59 function jsonforecast(callback){ //교통예보 72 function jsonforecast(callback){ //교통예보
60 var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast'; 73 var url2 = 'http://data.ex.co.kr/openapi/safeDriving/forecast';
...@@ -113,9 +126,25 @@ function jsonICtoICtime(startICcode, endICcode, callback){ ...@@ -113,9 +126,25 @@ function jsonICtoICtime(startICcode, endICcode, callback){
113 }); 126 });
114 } 127 }
115 128
129 +function jsonConstrunction(callback){
130 + var url4 = 'http://openapi.its.go.kr:8082/api/NEventIdentity';
131 + var queryParams4 = '?' + encodeURIComponent('key') + '=1590913608992'; /* Service Key*/
132 + queryParams4 += '&ReqType=2&MinX=127.100000&MaxX=128.890000&MinY=34.100000 &MaxY=39.100000&type=ex'
116 133
117 -app.use('/', router); 134 + request({
135 + url: url4 + queryParams4,
136 + method: 'GET'
137 + }, function (error, response, body) {
138 + var result = body;
139 + var xmlToJson = convert.xml2json(result, {compact: true, spaces: 4});
140 + xmlToJson = JSON.parse(xmlToJson);
141 + console.log(xmlToJson);
142 + console.log(typeof(xmlToJson));
143 + callback(xmlToJson);
144 + });
145 +}
118 146
147 +app.use('/', router);
119 148
120 function ishello(istext){ 149 function ishello(istext){
121 if(istext == '안녕'){ 150 if(istext == '안녕'){
...@@ -142,6 +171,9 @@ function firstforecast(isforecast){ ...@@ -142,6 +171,9 @@ function firstforecast(isforecast){
142 else if (isforecast == '5'){ 171 else if (isforecast == '5'){
143 return true; 172 return true;
144 } 173 }
174 + else if (isforecast == '6'){
175 + return true;
176 + }
145 else { 177 else {
146 return false; 178 return false;
147 } 179 }
...@@ -199,7 +231,6 @@ function nexttext(typetext){ ...@@ -199,7 +231,6 @@ function nexttext(typetext){
199 } 231 }
200 } 232 }
201 233
202 -
203 function inputroadnumber(typetext){ 234 function inputroadnumber(typetext){
204 if(typetext.indexOf("번") >= 0){ 235 if(typetext.indexOf("번") >= 0){
205 return true; 236 return true;
...@@ -222,6 +253,15 @@ function pushmsg(eventObj){ ...@@ -222,6 +253,15 @@ function pushmsg(eventObj){
222 console.log(eventObj.source.userId); 253 console.log(eventObj.source.userId);
223 console.log(userroadcongest[eventObj.source.userId]); 254 console.log(userroadcongest[eventObj.source.userId]);
224 console.log(userroadcongestlength[eventObj.source.userId]); 255 console.log(userroadcongestlength[eventObj.source.userId]);
256 + console.log(userroadcongestcount[eventObj.source.userId]);
257 + var isend = false;
258 + if (userroadcongestlength[eventObj.source.userId] < userroadcongestcount[eventObj.source.userId]){
259 + delete userroadcongest[eventObj.source.userId];
260 + delete userroadcongestcount[eventObj.source.userId];
261 + delete userroadcongestlength[eventObj.source.userId];
262 + isend = true;
263 + }
264 + if(isend == false){
225 request.post( 265 request.post(
226 { 266 {
227 url: TARGET_URL, 267 url: TARGET_URL,
...@@ -233,31 +273,51 @@ function pushmsg(eventObj){ ...@@ -233,31 +273,51 @@ function pushmsg(eventObj){
233 "messages":[ 273 "messages":[
234 { 274 {
235 "type":"text", 275 "type":"text",
236 - "text":userroadcongest[eventObj.source.userId][(usercount[eventObj.source.userId])] 276 + "text":userroadcongest[eventObj.source.userId][(userroadcongestcount[eventObj.source.userId])]
237 }, 277 },
238 { "type":"text", 278 { "type":"text",
239 - "text":userroadcongest[eventObj.source.userId][usercount[eventObj.source.userId] + 1] 279 + "text":userroadcongest[eventObj.source.userId][userroadcongestcount[eventObj.source.userId] + 1]
240 }, 280 },
241 { 281 {
242 "type":"text", 282 "type":"text",
243 - "text":userroadcongest[eventObj.source.userId][usercount[eventObj.source.userId] + 2] 283 + "text":userroadcongest[eventObj.source.userId][userroadcongestcount[eventObj.source.userId] + 2]
244 }, 284 },
245 { 285 {
246 "type":"text", 286 "type":"text",
247 - "text":userroadcongest[eventObj.source.userId][usercount[eventObj.source.userId] + 3] 287 + "text":userroadcongest[eventObj.source.userId][userroadcongestcount[eventObj.source.userId] + 3]
248 }, 288 },
249 { 289 {
250 "type":"text", 290 "type":"text",
251 - "text":userroadcongest[eventObj.source.userId][usercount[eventObj.source.userId] + 4] 291 + "text":userroadcongest[eventObj.source.userId][userroadcongestcount[eventObj.source.userId] + 4]
252 } 292 }
253 ] 293 ]
254 } 294 }
255 },(error, response, body) => { 295 },(error, response, body) => {
256 console.log(body) 296 console.log(body)
257 }); 297 });
258 - 298 + }
259 - if(userroadcongestlength[eventObj.source.userId] > (usercount[eventObj.source.userId] + 5)){ 299 + else if(isend == true){
260 - usercount[eventObj.source.userId] = (usercount[eventObj.source.userId] + 5); 300 + request.post(
301 + {
302 + url: TARGET_URL,
303 + headers: {
304 + 'Authorization': `Bearer ${TOKEN}`
305 + },
306 + json: {
307 + "replyToken":eventObj.replyToken,
308 + "messages":[
309 + {
310 + "type":"text",
311 + "text":"더이상의 내용은 없습니다."
312 + }
313 + ]
314 + }
315 + },(error, response, body) => {
316 + console.log(body)
317 + });
318 + }
319 + if(userroadcongestlength[eventObj.source.userId] != (userroadcongestcount[eventObj.source.userId] + 5)){
320 + userroadcongestcount[eventObj.source.userId] = (userroadcongestcount[eventObj.source.userId] + 5);
261 } 321 }
262 } 322 }
263 function wanttoknowfee(typetext){ 323 function wanttoknowfee(typetext){
...@@ -349,6 +409,10 @@ app.post('/hook', function (req, res) { ...@@ -349,6 +409,10 @@ app.post('/hook', function (req, res) {
349 console.log("[request Order] ", message); 409 console.log("[request Order] ", message);
350 leadtime(eventObj); 410 leadtime(eventObj);
351 } 411 }
412 + else if (message.text == '6'){
413 + console.log('[request Order', message);
414 + viewconstruction(eventObj);
415 + }
352 } 416 }
353 417
354 isselecttypeforecast = selecttypeforecast(message.text); 418 isselecttypeforecast = selecttypeforecast(message.text);
...@@ -436,7 +500,7 @@ function helloworld(eventObj){ ...@@ -436,7 +500,7 @@ function helloworld(eventObj){
436 }, 500 },
437 { 501 {
438 "type":"text", 502 "type":"text",
439 - "text":"현재 교통 예보가 궁금하시다면 1번을, 실시간 교통혼잡 상황을 보실려면 2번을, 실시간 정체상황을 알고 싶다면 3번을, 교통요금이 궁금하시다면 4번을, 나들목간 통행평균시간이 궁금하시다면 5번을 눌러주세요. " 503 + "text":"현재 교통 예보가 궁금하시다면 '1'을, 실시간 교통혼잡 상황을 보실려면 '2'을, 실시간 정체상황을 알고 싶다면 '3'을, 교통요금이 궁금하시다면 '4'을, 나들목간 통행평균시간이 궁금하시다면 '5'을, 실시간 공사 정보를 확인하고 싶으시면 '6'을 눌러주세요."
440 }, 504 },
441 { 505 {
442 "type":"text", 506 "type":"text",
...@@ -474,6 +538,7 @@ function viewhtml(eventObj){ ...@@ -474,6 +538,7 @@ function viewhtml(eventObj){
474 }); 538 });
475 } 539 }
476 540
541 +
477 function leadfee(eventObj){ 542 function leadfee(eventObj){
478 request.post( 543 request.post(
479 { 544 {
...@@ -1019,7 +1084,7 @@ function roadcongest(eventObj, msg, userid){ ...@@ -1019,7 +1084,7 @@ function roadcongest(eventObj, msg, userid){
1019 console.log(roadnumberstring); 1084 console.log(roadnumberstring);
1020 userroadcongest[userid] = roadnumberstring; 1085 userroadcongest[userid] = roadnumberstring;
1021 userroadcongestlength[userid] = roadnumberstringLength; 1086 userroadcongestlength[userid] = roadnumberstringLength;
1022 - usercount[userid] = 0; 1087 + userroadcongestcount[userid] = 0;
1023 1088
1024 1089
1025 1090
......
...@@ -24,6 +24,14 @@ ...@@ -24,6 +24,14 @@
24 "uri-js": "^4.2.2" 24 "uri-js": "^4.2.2"
25 } 25 }
26 }, 26 },
27 + "ansi-styles": {
28 + "version": "3.2.1",
29 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
30 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
31 + "requires": {
32 + "color-convert": "^1.9.0"
33 + }
34 + },
27 "array-flatten": { 35 "array-flatten": {
28 "version": "1.1.1", 36 "version": "1.1.1",
29 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 37 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
...@@ -42,6 +50,11 @@ ...@@ -42,6 +50,11 @@
42 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 50 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
43 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 51 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
44 }, 52 },
53 + "async": {
54 + "version": "0.9.2",
55 + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
56 + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
57 + },
45 "asynckit": { 58 "asynckit": {
46 "version": "0.4.0", 59 "version": "0.4.0",
47 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 60 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
...@@ -57,6 +70,11 @@ ...@@ -57,6 +70,11 @@
57 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", 70 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
58 "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" 71 "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
59 }, 72 },
73 + "balanced-match": {
74 + "version": "1.0.0",
75 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
76 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
77 + },
60 "bcrypt-pbkdf": { 78 "bcrypt-pbkdf": {
61 "version": "1.0.2", 79 "version": "1.0.2",
62 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 80 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
...@@ -65,20 +83,6 @@ ...@@ -65,20 +83,6 @@
65 "tweetnacl": "^0.14.3" 83 "tweetnacl": "^0.14.3"
66 } 84 }
67 }, 85 },
68 - "bl": {
69 - "version": "2.2.0",
70 - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
71 - "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
72 - "requires": {
73 - "readable-stream": "^2.3.5",
74 - "safe-buffer": "^5.1.1"
75 - }
76 - },
77 - "bluebird": {
78 - "version": "3.5.1",
79 - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
80 - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
81 - },
82 "body-parser": { 86 "body-parser": {
83 "version": "1.19.0", 87 "version": "1.19.0",
84 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 88 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
...@@ -96,10 +100,14 @@ ...@@ -96,10 +100,14 @@
96 "type-is": "~1.6.17" 100 "type-is": "~1.6.17"
97 } 101 }
98 }, 102 },
99 - "bson": { 103 + "brace-expansion": {
100 - "version": "1.1.4", 104 + "version": "1.1.11",
101 - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", 105 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
102 - "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" 106 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
107 + "requires": {
108 + "balanced-match": "^1.0.0",
109 + "concat-map": "0.0.1"
110 + }
103 }, 111 },
104 "bytes": { 112 "bytes": {
105 "version": "3.1.0", 113 "version": "3.1.0",
...@@ -111,6 +119,29 @@ ...@@ -111,6 +119,29 @@
111 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 119 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
112 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 120 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
113 }, 121 },
122 + "chalk": {
123 + "version": "2.4.2",
124 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
125 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
126 + "requires": {
127 + "ansi-styles": "^3.2.1",
128 + "escape-string-regexp": "^1.0.5",
129 + "supports-color": "^5.3.0"
130 + }
131 + },
132 + "color-convert": {
133 + "version": "1.9.3",
134 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
135 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
136 + "requires": {
137 + "color-name": "1.1.3"
138 + }
139 + },
140 + "color-name": {
141 + "version": "1.1.3",
142 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
143 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
144 + },
114 "combined-stream": { 145 "combined-stream": {
115 "version": "1.0.8", 146 "version": "1.0.8",
116 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 147 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
...@@ -119,19 +150,17 @@ ...@@ -119,19 +150,17 @@
119 "delayed-stream": "~1.0.0" 150 "delayed-stream": "~1.0.0"
120 } 151 }
121 }, 152 },
153 + "concat-map": {
154 + "version": "0.0.1",
155 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
156 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
157 + },
122 "content-disposition": { 158 "content-disposition": {
123 "version": "0.5.3", 159 "version": "0.5.3",
124 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 160 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
125 "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 161 "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
126 "requires": { 162 "requires": {
127 "safe-buffer": "5.1.2" 163 "safe-buffer": "5.1.2"
128 - },
129 - "dependencies": {
130 - "safe-buffer": {
131 - "version": "5.1.2",
132 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
133 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
134 - }
135 } 164 }
136 }, 165 },
137 "content-type": { 166 "content-type": {
...@@ -144,15 +173,6 @@ ...@@ -144,15 +173,6 @@
144 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 173 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
145 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 174 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
146 }, 175 },
147 - "cookie-parser": {
148 - "version": "1.4.5",
149 - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
150 - "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
151 - "requires": {
152 - "cookie": "0.4.0",
153 - "cookie-signature": "1.0.6"
154 - }
155 - },
156 "cookie-signature": { 176 "cookie-signature": {
157 "version": "1.0.6", 177 "version": "1.0.6",
158 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 178 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
...@@ -163,11 +183,6 @@ ...@@ -163,11 +183,6 @@
163 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 183 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
164 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 184 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
165 }, 185 },
166 - "crypto": {
167 - "version": "1.0.1",
168 - "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz",
169 - "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig=="
170 - },
171 "dashdash": { 186 "dashdash": {
172 "version": "1.14.1", 187 "version": "1.14.1",
173 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 188 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
...@@ -189,11 +204,6 @@ ...@@ -189,11 +204,6 @@
189 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 204 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
190 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 205 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
191 }, 206 },
192 - "denque": {
193 - "version": "1.4.1",
194 - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
195 - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ=="
196 - },
197 "depd": { 207 "depd": {
198 "version": "1.1.2", 208 "version": "1.1.2",
199 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 209 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
...@@ -218,25 +228,29 @@ ...@@ -218,25 +228,29 @@
218 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 228 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
219 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 229 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
220 }, 230 },
231 + "ejs": {
232 + "version": "3.1.3",
233 + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.3.tgz",
234 + "integrity": "sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg==",
235 + "requires": {
236 + "jake": "^10.6.1"
237 + }
238 + },
221 "encodeurl": { 239 "encodeurl": {
222 "version": "1.0.2", 240 "version": "1.0.2",
223 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 241 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
224 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 242 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
225 }, 243 },
226 - "errorhandler": {
227 - "version": "1.5.1",
228 - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
229 - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==",
230 - "requires": {
231 - "accepts": "~1.3.7",
232 - "escape-html": "~1.0.3"
233 - }
234 - },
235 "escape-html": { 244 "escape-html": {
236 "version": "1.0.3", 245 "version": "1.0.3",
237 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 246 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
238 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 247 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
239 }, 248 },
249 + "escape-string-regexp": {
250 + "version": "1.0.5",
251 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
252 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
253 + },
240 "etag": { 254 "etag": {
241 "version": "1.8.1", 255 "version": "1.8.1",
242 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 256 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
...@@ -277,43 +291,6 @@ ...@@ -277,43 +291,6 @@
277 "type-is": "~1.6.18", 291 "type-is": "~1.6.18",
278 "utils-merge": "1.0.1", 292 "utils-merge": "1.0.1",
279 "vary": "~1.1.2" 293 "vary": "~1.1.2"
280 - },
281 - "dependencies": {
282 - "safe-buffer": {
283 - "version": "5.1.2",
284 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
285 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
286 - }
287 - }
288 - },
289 - "express-error-handler": {
290 - "version": "1.1.0",
291 - "resolved": "https://registry.npmjs.org/express-error-handler/-/express-error-handler-1.1.0.tgz",
292 - "integrity": "sha1-/y7bH+3PyrHmAcYKqzVUmC8fZJc=",
293 - "requires": {
294 - "mout": "0.12.0"
295 - }
296 - },
297 - "express-session": {
298 - "version": "1.17.1",
299 - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz",
300 - "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==",
301 - "requires": {
302 - "cookie": "0.4.0",
303 - "cookie-signature": "1.0.6",
304 - "debug": "2.6.9",
305 - "depd": "~2.0.0",
306 - "on-headers": "~1.0.2",
307 - "parseurl": "~1.3.3",
308 - "safe-buffer": "5.2.0",
309 - "uid-safe": "~2.1.5"
310 - },
311 - "dependencies": {
312 - "depd": {
313 - "version": "2.0.0",
314 - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
315 - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
316 - }
317 } 294 }
318 }, 295 },
319 "extend": { 296 "extend": {
...@@ -327,15 +304,23 @@ ...@@ -327,15 +304,23 @@
327 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 304 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
328 }, 305 },
329 "fast-deep-equal": { 306 "fast-deep-equal": {
330 - "version": "3.1.1", 307 + "version": "3.1.3",
331 - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", 308 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
332 - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" 309 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
333 }, 310 },
334 "fast-json-stable-stringify": { 311 "fast-json-stable-stringify": {
335 "version": "2.1.0", 312 "version": "2.1.0",
336 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 313 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
337 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 314 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
338 }, 315 },
316 + "filelist": {
317 + "version": "1.0.1",
318 + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
319 + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
320 + "requires": {
321 + "minimatch": "^3.0.4"
322 + }
323 + },
339 "finalhandler": { 324 "finalhandler": {
340 "version": "1.1.2", 325 "version": "1.1.2",
341 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 326 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
...@@ -375,6 +360,11 @@ ...@@ -375,6 +360,11 @@
375 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 360 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
376 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 361 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
377 }, 362 },
363 + "fs": {
364 + "version": "0.0.1-security",
365 + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
366 + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
367 + },
378 "getpass": { 368 "getpass": {
379 "version": "0.1.7", 369 "version": "0.1.7",
380 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 370 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -397,6 +387,11 @@ ...@@ -397,6 +387,11 @@
397 "har-schema": "^2.0.0" 387 "har-schema": "^2.0.0"
398 } 388 }
399 }, 389 },
390 + "has-flag": {
391 + "version": "3.0.0",
392 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
393 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
394 + },
400 "http": { 395 "http": {
401 "version": "0.0.1-security", 396 "version": "0.0.1-security",
402 "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", 397 "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
...@@ -452,16 +447,22 @@ ...@@ -452,16 +447,22 @@
452 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 447 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
453 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 448 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
454 }, 449 },
455 - "isarray": {
456 - "version": "1.0.0",
457 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
458 - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
459 - },
460 "isstream": { 450 "isstream": {
461 "version": "0.1.2", 451 "version": "0.1.2",
462 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 452 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
463 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 453 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
464 }, 454 },
455 + "jake": {
456 + "version": "10.8.2",
457 + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
458 + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
459 + "requires": {
460 + "async": "0.9.x",
461 + "chalk": "^2.4.2",
462 + "filelist": "^1.0.1",
463 + "minimatch": "^3.0.4"
464 + }
465 + },
465 "jsbn": { 466 "jsbn": {
466 "version": "0.1.1", 467 "version": "0.1.1",
467 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 468 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
...@@ -493,22 +494,11 @@ ...@@ -493,22 +494,11 @@
493 "verror": "1.10.0" 494 "verror": "1.10.0"
494 } 495 }
495 }, 496 },
496 - "kareem": {
497 - "version": "2.3.1",
498 - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
499 - "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw=="
500 - },
501 "media-typer": { 497 "media-typer": {
502 "version": "0.3.0", 498 "version": "0.3.0",
503 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 499 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
504 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 500 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
505 }, 501 },
506 - "memory-pager": {
507 - "version": "1.5.0",
508 - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
509 - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
510 - "optional": true
511 - },
512 "merge-descriptors": { 502 "merge-descriptors": {
513 "version": "1.0.1", 503 "version": "1.0.1",
514 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 504 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
...@@ -537,89 +527,12 @@ ...@@ -537,89 +527,12 @@
537 "mime-db": "1.44.0" 527 "mime-db": "1.44.0"
538 } 528 }
539 }, 529 },
540 - "mongodb": { 530 + "minimatch": {
541 - "version": "3.5.7", 531 + "version": "3.0.4",
542 - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz", 532 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
543 - "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==", 533 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
544 "requires": { 534 "requires": {
545 - "bl": "^2.2.0", 535 + "brace-expansion": "^1.1.7"
546 - "bson": "^1.1.4",
547 - "denque": "^1.4.1",
548 - "require_optional": "^1.0.1",
549 - "safe-buffer": "^5.1.2",
550 - "saslprep": "^1.0.0"
551 - }
552 - },
553 - "mongoose": {
554 - "version": "5.9.16",
555 - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.9.16.tgz",
556 - "integrity": "sha512-b4HNndgh+dacoLE/2SBF3iBBofeaKL+aGVZH7jnPRc2RXRCplX4sfH5sgoz03ryCSXJ+RQNIfqKAADt/ZBzPDA==",
557 - "requires": {
558 - "bson": "^1.1.4",
559 - "kareem": "2.3.1",
560 - "mongodb": "3.5.7",
561 - "mongoose-legacy-pluralize": "1.0.2",
562 - "mpath": "0.7.0",
563 - "mquery": "3.2.2",
564 - "ms": "2.1.2",
565 - "regexp-clone": "1.0.0",
566 - "safe-buffer": "5.1.2",
567 - "sift": "7.0.1",
568 - "sliced": "1.0.1"
569 - },
570 - "dependencies": {
571 - "ms": {
572 - "version": "2.1.2",
573 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
574 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
575 - },
576 - "safe-buffer": {
577 - "version": "5.1.2",
578 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
579 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
580 - }
581 - }
582 - },
583 - "mongoose-legacy-pluralize": {
584 - "version": "1.0.2",
585 - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
586 - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
587 - },
588 - "mout": {
589 - "version": "0.12.0",
590 - "resolved": "https://registry.npmjs.org/mout/-/mout-0.12.0.tgz",
591 - "integrity": "sha1-bVskLuMx+dBMaOWPd6kaMGDoyss="
592 - },
593 - "mpath": {
594 - "version": "0.7.0",
595 - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz",
596 - "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg=="
597 - },
598 - "mquery": {
599 - "version": "3.2.2",
600 - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz",
601 - "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==",
602 - "requires": {
603 - "bluebird": "3.5.1",
604 - "debug": "3.1.0",
605 - "regexp-clone": "^1.0.0",
606 - "safe-buffer": "5.1.2",
607 - "sliced": "1.0.1"
608 - },
609 - "dependencies": {
610 - "debug": {
611 - "version": "3.1.0",
612 - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
613 - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
614 - "requires": {
615 - "ms": "2.0.0"
616 - }
617 - },
618 - "safe-buffer": {
619 - "version": "5.1.2",
620 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
621 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
622 - }
623 } 536 }
624 }, 537 },
625 "ms": { 538 "ms": {
...@@ -645,11 +558,6 @@ ...@@ -645,11 +558,6 @@
645 "ee-first": "1.1.1" 558 "ee-first": "1.1.1"
646 } 559 }
647 }, 560 },
648 - "on-headers": {
649 - "version": "1.0.2",
650 - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
651 - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
652 - },
653 "parseurl": { 561 "parseurl": {
654 "version": "1.3.3", 562 "version": "1.3.3",
655 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 563 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
...@@ -679,11 +587,6 @@ ...@@ -679,11 +587,6 @@
679 "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 587 "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
680 "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 588 "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
681 }, 589 },
682 - "process-nextick-args": {
683 - "version": "2.0.1",
684 - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
685 - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
686 - },
687 "proxy-addr": { 590 "proxy-addr": {
688 "version": "2.0.6", 591 "version": "2.0.6",
689 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 592 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
...@@ -708,11 +611,6 @@ ...@@ -708,11 +611,6 @@
708 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 611 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
709 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 612 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
710 }, 613 },
711 - "random-bytes": {
712 - "version": "1.0.0",
713 - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
714 - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
715 - },
716 "range-parser": { 614 "range-parser": {
717 "version": "1.2.1", 615 "version": "1.2.1",
718 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 616 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
...@@ -729,32 +627,6 @@ ...@@ -729,32 +627,6 @@
729 "unpipe": "1.0.0" 627 "unpipe": "1.0.0"
730 } 628 }
731 }, 629 },
732 - "readable-stream": {
733 - "version": "2.3.7",
734 - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
735 - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
736 - "requires": {
737 - "core-util-is": "~1.0.0",
738 - "inherits": "~2.0.3",
739 - "isarray": "~1.0.0",
740 - "process-nextick-args": "~2.0.0",
741 - "safe-buffer": "~5.1.1",
742 - "string_decoder": "~1.1.1",
743 - "util-deprecate": "~1.0.1"
744 - },
745 - "dependencies": {
746 - "safe-buffer": {
747 - "version": "5.1.2",
748 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
749 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
750 - }
751 - }
752 - },
753 - "regexp-clone": {
754 - "version": "1.0.0",
755 - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
756 - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
757 - },
758 "request": { 630 "request": {
759 "version": "2.88.2", 631 "version": "2.88.2",
760 "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 632 "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
...@@ -789,43 +661,20 @@ ...@@ -789,43 +661,20 @@
789 } 661 }
790 } 662 }
791 }, 663 },
792 - "require_optional": {
793 - "version": "1.0.1",
794 - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
795 - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
796 - "requires": {
797 - "resolve-from": "^2.0.0",
798 - "semver": "^5.1.0"
799 - }
800 - },
801 - "resolve-from": {
802 - "version": "2.0.0",
803 - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
804 - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
805 - },
806 "safe-buffer": { 664 "safe-buffer": {
807 - "version": "5.2.0", 665 + "version": "5.1.2",
808 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 666 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
809 - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 667 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
810 }, 668 },
811 "safer-buffer": { 669 "safer-buffer": {
812 "version": "2.1.2", 670 "version": "2.1.2",
813 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 671 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
814 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 672 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
815 }, 673 },
816 - "saslprep": { 674 + "sax": {
817 - "version": "1.0.3", 675 + "version": "1.2.4",
818 - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 676 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
819 - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 677 + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
820 - "optional": true,
821 - "requires": {
822 - "sparse-bitfield": "^3.0.3"
823 - }
824 - },
825 - "semver": {
826 - "version": "5.7.1",
827 - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
828 - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
829 }, 678 },
830 "send": { 679 "send": {
831 "version": "0.17.1", 680 "version": "0.17.1",
...@@ -870,25 +719,6 @@ ...@@ -870,25 +719,6 @@
870 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 719 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
871 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 720 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
872 }, 721 },
873 - "sift": {
874 - "version": "7.0.1",
875 - "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
876 - "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
877 - },
878 - "sliced": {
879 - "version": "1.0.1",
880 - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
881 - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
882 - },
883 - "sparse-bitfield": {
884 - "version": "3.0.3",
885 - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
886 - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
887 - "optional": true,
888 - "requires": {
889 - "memory-pager": "^1.0.2"
890 - }
891 - },
892 "sshpk": { 722 "sshpk": {
893 "version": "1.16.1", 723 "version": "1.16.1",
894 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 724 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
...@@ -910,19 +740,12 @@ ...@@ -910,19 +740,12 @@
910 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 740 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
911 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 741 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
912 }, 742 },
913 - "string_decoder": { 743 + "supports-color": {
914 - "version": "1.1.1", 744 + "version": "5.5.0",
915 - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 745 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
916 - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 746 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
917 "requires": { 747 "requires": {
918 - "safe-buffer": "~5.1.0" 748 + "has-flag": "^3.0.0"
919 - },
920 - "dependencies": {
921 - "safe-buffer": {
922 - "version": "5.1.2",
923 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
924 - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
925 - }
926 } 749 }
927 }, 750 },
928 "toidentifier": { 751 "toidentifier": {
...@@ -961,14 +784,6 @@ ...@@ -961,14 +784,6 @@
961 "mime-types": "~2.1.24" 784 "mime-types": "~2.1.24"
962 } 785 }
963 }, 786 },
964 - "uid-safe": {
965 - "version": "2.1.5",
966 - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
967 - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
968 - "requires": {
969 - "random-bytes": "~1.0.0"
970 - }
971 - },
972 "unpipe": { 787 "unpipe": {
973 "version": "1.0.0", 788 "version": "1.0.0",
974 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 789 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
...@@ -990,11 +805,6 @@ ...@@ -990,11 +805,6 @@
990 "inherits": "2.0.3" 805 "inherits": "2.0.3"
991 } 806 }
992 }, 807 },
993 - "util-deprecate": {
994 - "version": "1.0.2",
995 - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
996 - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
997 - },
998 "utils-merge": { 808 "utils-merge": {
999 "version": "1.0.1", 809 "version": "1.0.1",
1000 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 810 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
...@@ -1019,6 +829,14 @@ ...@@ -1019,6 +829,14 @@
1019 "core-util-is": "1.0.2", 829 "core-util-is": "1.0.2",
1020 "extsprintf": "^1.2.0" 830 "extsprintf": "^1.2.0"
1021 } 831 }
832 + },
833 + "xml-js": {
834 + "version": "1.6.11",
835 + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
836 + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
837 + "requires": {
838 + "sax": "^1.2.4"
839 + }
1022 } 840 }
1023 } 841 }
1024 } 842 }
......
...@@ -6,24 +6,18 @@ ...@@ -6,24 +6,18 @@
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1" 7 "test": "echo \"Error: no test specified\" && exit 1"
8 }, 8 },
9 - "repository": {
10 - "type": "git",
11 - "url": "ssh://git@khuhub.khu.ac.kr:12959/2019102236/WhereUR.git"
12 - },
13 "author": "", 9 "author": "",
14 "license": "ISC", 10 "license": "ISC",
15 "dependencies": { 11 "dependencies": {
16 "body-parser": "^1.19.0", 12 "body-parser": "^1.19.0",
17 - "cookie-parser": "^1.4.5", 13 + "ejs": "^3.1.3",
18 - "crypto": "^1.0.1",
19 - "errorhandler": "^1.5.1",
20 "express": "^4.17.1", 14 "express": "^4.17.1",
21 - "express-error-handler": "^1.1.0", 15 + "fs": "0.0.1-security",
22 - "express-session": "^1.17.1",
23 "http": "0.0.1-security", 16 "http": "0.0.1-security",
24 "https": "^1.0.0", 17 "https": "^1.0.0",
25 - "mongoose": "^5.9.16",
26 "path": "^0.12.7", 18 "path": "^0.12.7",
27 - "request": "^2.88.2" 19 + "request": "^2.88.2",
20 + "serve-static": "^1.14.1",
21 + "xml-js": "^1.6.11"
28 } 22 }
29 } 23 }
......
1 +<!DOCTYPE html>
2 +<html>
3 +<head>
4 + <meta charset="utf-8">
5 + <title>공사정보</title>
6 +
7 +</head>
8 +<body>
9 +<div id="map" style="width:100%;height:350px;"></div>
10 +
11 +<form method="get" action="/process/mapconstruction"></form>
12 +<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=3ebfae70e971821ab8f14e074d068bdc"></script>
13 +<script>
14 + var mapContainer = document.getElementById('map'), // 지도를 표시할 div
15 + mapOption = {
16 + center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
17 + level: 3 // 지도의 확대 레벨
18 + };
19 +
20 +var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다
21 +var json = <%- JSON.stringify(construnctionjson) %>;
22 +console.log(json);
23 +
24 +var positions = new Array();
25 +for(var i = 0; i < json.response.data.length; i++){
26 + var x = parseFloat(json.response.data[i].coordx._text);
27 + var y = parseFloat(json.response.data[i].coordy._text);
28 + console.log(x);
29 + console.log(y);
30 + positions[i] = {
31 + content: json.response.data[i].eventstatusmsg._text,
32 + latlng: new kakao.maps.LatLng(y,x)
33 + }
34 +}
35 +
36 +// 마커를 표시할 위치와 내용을 가지고 있는 객체 배열입니다
37 +
38 +for (var i = 0; i < positions.length; i ++) {
39 + // 마커를 생성합니다
40 + var marker = new kakao.maps.Marker({
41 + map: map, // 마커를 표시할 지도
42 + position: positions[i].latlng // 마커의 위치
43 + });
44 +
45 + // 마커에 표시할 인포윈도우를 생성합니다
46 + var infowindow = new kakao.maps.InfoWindow({
47 + content: positions[i].content // 인포윈도우에 표시할 내용
48 + });
49 +
50 + // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다
51 + // 이벤트 리스너로는 클로저를 만들어 등록합니다
52 + // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
53 + kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow));
54 + kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow));
55 +}
56 +
57 +// 인포윈도우를 표시하는 클로저를 만드는 함수입니다
58 +function makeOverListener(map, marker, infowindow) {
59 + return function() {
60 + infowindow.open(map, marker);
61 + };
62 +}
63 +
64 +// 인포윈도우를 닫는 클로저를 만드는 함수입니다
65 +function makeOutListener(infowindow) {
66 + return function() {
67 + infowindow.close();
68 + };
69 +}
70 +
71 +
72 +/* 아래와 같이도 할 수 있습니다 */
73 +/*
74 +for (var i = 0; i < positions.length; i ++) {
75 + // 마커를 생성합니다
76 + var marker = new kakao.maps.Marker({
77 + map: map, // 마커를 표시할 지도
78 + position: positions[i].latlng // 마커의 위치
79 + });
80 +
81 + // 마커에 표시할 인포윈도우를 생성합니다
82 + var infowindow = new kakao.maps.InfoWindow({
83 + content: positions[i].content // 인포윈도우에 표시할 내용
84 + });
85 +
86 + // 마커에 이벤트를 등록하는 함수 만들고 즉시 호출하여 클로저를 만듭니다
87 + // 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
88 + (function(marker, infowindow) {
89 + // 마커에 mouseover 이벤트를 등록하고 마우스 오버 시 인포윈도우를 표시합니다
90 + kakao.maps.event.addListener(marker, 'mouseover', function() {
91 + infowindow.open(map, marker);
92 + });
93 +
94 + // 마커에 mouseout 이벤트를 등록하고 마우스 아웃 시 인포윈도우를 닫습니다
95 + kakao.maps.event.addListener(marker, 'mouseout', function() {
96 + infowindow.close();
97 + });
98 + })(marker, infowindow);
99 +}
100 +*/
101 +</script>
102 +</body>
103 +</html>
...\ No newline at end of file ...\ No newline at end of file