강상위

Freature Skeleton - login, join, DB save, DB search

...@@ -9,6 +9,15 @@ ...@@ -9,6 +9,15 @@
9 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", 9 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz",
10 "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==" 10 "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w=="
11 }, 11 },
12 + "accepts": {
13 + "version": "1.3.5",
14 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
15 + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
16 + "requires": {
17 + "mime-types": "2.1.21",
18 + "negotiator": "0.6.1"
19 + }
20 + },
12 "ajv": { 21 "ajv": {
13 "version": "6.5.5", 22 "version": "6.5.5",
14 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", 23 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
...@@ -20,6 +29,11 @@ ...@@ -20,6 +29,11 @@
20 "uri-js": "4.2.2" 29 "uri-js": "4.2.2"
21 } 30 }
22 }, 31 },
32 + "array-flatten": {
33 + "version": "1.1.1",
34 + "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
35 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
36 + },
23 "asn1": { 37 "asn1": {
24 "version": "0.2.4", 38 "version": "0.2.4",
25 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 39 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
...@@ -74,6 +88,33 @@ ...@@ -74,6 +88,33 @@
74 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 88 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
75 "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 89 "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
76 }, 90 },
91 + "body-parser": {
92 + "version": "1.18.3",
93 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
94 + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
95 + "requires": {
96 + "bytes": "3.0.0",
97 + "content-type": "1.0.4",
98 + "debug": "2.6.9",
99 + "depd": "1.1.2",
100 + "http-errors": "1.6.3",
101 + "iconv-lite": "0.4.23",
102 + "on-finished": "2.3.0",
103 + "qs": "6.5.2",
104 + "raw-body": "2.3.3",
105 + "type-is": "1.6.16"
106 + },
107 + "dependencies": {
108 + "debug": {
109 + "version": "2.6.9",
110 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
111 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
112 + "requires": {
113 + "ms": "2.0.0"
114 + }
115 + }
116 + }
117 + },
77 "boolbase": { 118 "boolbase": {
78 "version": "1.0.0", 119 "version": "1.0.0",
79 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 120 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
...@@ -93,6 +134,11 @@ ...@@ -93,6 +134,11 @@
93 "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", 134 "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz",
94 "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" 135 "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA=="
95 }, 136 },
137 + "bytes": {
138 + "version": "3.0.0",
139 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
140 + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
141 + },
96 "caseless": { 142 "caseless": {
97 "version": "0.12.0", 143 "version": "0.12.0",
98 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 144 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
...@@ -124,6 +170,26 @@ ...@@ -124,6 +170,26 @@
124 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 170 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
125 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 171 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
126 }, 172 },
173 + "content-disposition": {
174 + "version": "0.5.2",
175 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
176 + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
177 + },
178 + "content-type": {
179 + "version": "1.0.4",
180 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
181 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
182 + },
183 + "cookie": {
184 + "version": "0.3.1",
185 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
186 + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
187 + },
188 + "cookie-signature": {
189 + "version": "1.0.6",
190 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
191 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
192 + },
127 "core-js": { 193 "core-js": {
128 "version": "2.3.0", 194 "version": "2.3.0",
129 "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", 195 "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
...@@ -134,6 +200,11 @@ ...@@ -134,6 +200,11 @@
134 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 200 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
135 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 201 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
136 }, 202 },
203 + "crc": {
204 + "version": "3.4.4",
205 + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
206 + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms="
207 + },
137 "css-select": { 208 "css-select": {
138 "version": "1.2.0", 209 "version": "1.2.0",
139 "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 210 "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
...@@ -171,6 +242,16 @@ ...@@ -171,6 +242,16 @@
171 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 242 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
172 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 243 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
173 }, 244 },
245 + "depd": {
246 + "version": "1.1.2",
247 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
248 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
249 + },
250 + "destroy": {
251 + "version": "1.0.4",
252 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
253 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
254 + },
174 "dom-serializer": { 255 "dom-serializer": {
175 "version": "0.1.0", 256 "version": "0.1.0",
176 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", 257 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
...@@ -218,6 +299,21 @@ ...@@ -218,6 +299,21 @@
218 "safer-buffer": "2.1.2" 299 "safer-buffer": "2.1.2"
219 } 300 }
220 }, 301 },
302 + "ee-first": {
303 + "version": "1.1.1",
304 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
305 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
306 + },
307 + "ejs": {
308 + "version": "2.6.1",
309 + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
310 + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ=="
311 + },
312 + "encodeurl": {
313 + "version": "1.0.2",
314 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
315 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
316 + },
221 "entities": { 317 "entities": {
222 "version": "1.1.2", 318 "version": "1.1.2",
223 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 319 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
...@@ -228,6 +324,89 @@ ...@@ -228,6 +324,89 @@
228 "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", 324 "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
229 "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=" 325 "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y="
230 }, 326 },
327 + "escape-html": {
328 + "version": "1.0.3",
329 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
330 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
331 + },
332 + "etag": {
333 + "version": "1.8.1",
334 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
335 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
336 + },
337 + "express": {
338 + "version": "4.16.4",
339 + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
340 + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
341 + "requires": {
342 + "accepts": "1.3.5",
343 + "array-flatten": "1.1.1",
344 + "body-parser": "1.18.3",
345 + "content-disposition": "0.5.2",
346 + "content-type": "1.0.4",
347 + "cookie": "0.3.1",
348 + "cookie-signature": "1.0.6",
349 + "debug": "2.6.9",
350 + "depd": "1.1.2",
351 + "encodeurl": "1.0.2",
352 + "escape-html": "1.0.3",
353 + "etag": "1.8.1",
354 + "finalhandler": "1.1.1",
355 + "fresh": "0.5.2",
356 + "merge-descriptors": "1.0.1",
357 + "methods": "1.1.2",
358 + "on-finished": "2.3.0",
359 + "parseurl": "1.3.2",
360 + "path-to-regexp": "0.1.7",
361 + "proxy-addr": "2.0.4",
362 + "qs": "6.5.2",
363 + "range-parser": "1.2.0",
364 + "safe-buffer": "5.1.2",
365 + "send": "0.16.2",
366 + "serve-static": "1.13.2",
367 + "setprototypeof": "1.1.0",
368 + "statuses": "1.4.0",
369 + "type-is": "1.6.16",
370 + "utils-merge": "1.0.1",
371 + "vary": "1.1.2"
372 + },
373 + "dependencies": {
374 + "debug": {
375 + "version": "2.6.9",
376 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
377 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
378 + "requires": {
379 + "ms": "2.0.0"
380 + }
381 + }
382 + }
383 + },
384 + "express-session": {
385 + "version": "1.15.6",
386 + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz",
387 + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==",
388 + "requires": {
389 + "cookie": "0.3.1",
390 + "cookie-signature": "1.0.6",
391 + "crc": "3.4.4",
392 + "debug": "2.6.9",
393 + "depd": "1.1.2",
394 + "on-headers": "1.0.1",
395 + "parseurl": "1.3.2",
396 + "uid-safe": "2.1.5",
397 + "utils-merge": "1.0.1"
398 + },
399 + "dependencies": {
400 + "debug": {
401 + "version": "2.6.9",
402 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
403 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
404 + "requires": {
405 + "ms": "2.0.0"
406 + }
407 + }
408 + }
409 + },
231 "extend": { 410 "extend": {
232 "version": "3.0.2", 411 "version": "3.0.2",
233 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 412 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
...@@ -248,6 +427,30 @@ ...@@ -248,6 +427,30 @@
248 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 427 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
249 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 428 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
250 }, 429 },
430 + "finalhandler": {
431 + "version": "1.1.1",
432 + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
433 + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
434 + "requires": {
435 + "debug": "2.6.9",
436 + "encodeurl": "1.0.2",
437 + "escape-html": "1.0.3",
438 + "on-finished": "2.3.0",
439 + "parseurl": "1.3.2",
440 + "statuses": "1.4.0",
441 + "unpipe": "1.0.0"
442 + },
443 + "dependencies": {
444 + "debug": {
445 + "version": "2.6.9",
446 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
447 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
448 + "requires": {
449 + "ms": "2.0.0"
450 + }
451 + }
452 + }
453 + },
251 "forever-agent": { 454 "forever-agent": {
252 "version": "0.6.1", 455 "version": "0.6.1",
253 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 456 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
...@@ -263,6 +466,16 @@ ...@@ -263,6 +466,16 @@
263 "mime-types": "2.1.21" 466 "mime-types": "2.1.21"
264 } 467 }
265 }, 468 },
469 + "forwarded": {
470 + "version": "0.1.2",
471 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
472 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
473 + },
474 + "fresh": {
475 + "version": "0.5.2",
476 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
477 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
478 + },
266 "fs.realpath": { 479 "fs.realpath": {
267 "version": "1.0.0", 480 "version": "1.0.0",
268 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 481 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
...@@ -323,6 +536,17 @@ ...@@ -323,6 +536,17 @@
323 } 536 }
324 } 537 }
325 }, 538 },
539 + "http-errors": {
540 + "version": "1.6.3",
541 + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
542 + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
543 + "requires": {
544 + "depd": "1.1.2",
545 + "inherits": "2.0.3",
546 + "setprototypeof": "1.1.0",
547 + "statuses": "1.4.0"
548 + }
549 + },
326 "http-signature": { 550 "http-signature": {
327 "version": "1.2.0", 551 "version": "1.2.0",
328 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 552 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
...@@ -342,6 +566,14 @@ ...@@ -342,6 +566,14 @@
342 "safer-buffer": "2.1.2" 566 "safer-buffer": "2.1.2"
343 } 567 }
344 }, 568 },
569 + "iconv-lite": {
570 + "version": "0.4.23",
571 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
572 + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
573 + "requires": {
574 + "safer-buffer": "2.1.2"
575 + }
576 + },
345 "immediate": { 577 "immediate": {
346 "version": "3.0.6", 578 "version": "3.0.6",
347 "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 579 "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
...@@ -361,6 +593,11 @@ ...@@ -361,6 +593,11 @@
361 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 593 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
362 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 594 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
363 }, 595 },
596 + "ipaddr.js": {
597 + "version": "1.8.0",
598 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
599 + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
600 + },
364 "is-typedarray": { 601 "is-typedarray": {
365 "version": "1.0.0", 602 "version": "1.0.0",
366 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 603 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
...@@ -462,12 +699,32 @@ ...@@ -462,12 +699,32 @@
462 "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 699 "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
463 "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 700 "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
464 }, 701 },
702 + "media-typer": {
703 + "version": "0.3.0",
704 + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
705 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
706 + },
465 "memory-pager": { 707 "memory-pager": {
466 "version": "1.1.0", 708 "version": "1.1.0",
467 "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", 709 "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz",
468 "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==", 710 "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==",
469 "optional": true 711 "optional": true
470 }, 712 },
713 + "merge-descriptors": {
714 + "version": "1.0.1",
715 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
716 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
717 + },
718 + "methods": {
719 + "version": "1.1.2",
720 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
721 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
722 + },
723 + "mime": {
724 + "version": "1.4.1",
725 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
726 + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
727 + },
471 "mime-db": { 728 "mime-db": {
472 "version": "1.37.0", 729 "version": "1.37.0",
473 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 730 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
...@@ -561,6 +818,11 @@ ...@@ -561,6 +818,11 @@
561 "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", 818 "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
562 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" 819 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
563 }, 820 },
821 + "negotiator": {
822 + "version": "0.6.1",
823 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
824 + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
825 + },
564 "nth-check": { 826 "nth-check": {
565 "version": "1.0.2", 827 "version": "1.0.2",
566 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", 828 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
...@@ -574,6 +836,19 @@ ...@@ -574,6 +836,19 @@
574 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 836 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
575 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 837 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
576 }, 838 },
839 + "on-finished": {
840 + "version": "2.3.0",
841 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
842 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
843 + "requires": {
844 + "ee-first": "1.1.1"
845 + }
846 + },
847 + "on-headers": {
848 + "version": "1.0.1",
849 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
850 + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
851 + },
577 "once": { 852 "once": {
578 "version": "1.4.0", 853 "version": "1.4.0",
579 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 854 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
...@@ -600,11 +875,21 @@ ...@@ -600,11 +875,21 @@
600 "@types/node": "10.12.10" 875 "@types/node": "10.12.10"
601 } 876 }
602 }, 877 },
878 + "parseurl": {
879 + "version": "1.3.2",
880 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
881 + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
882 + },
603 "path-is-absolute": { 883 "path-is-absolute": {
604 "version": "1.0.1", 884 "version": "1.0.1",
605 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 885 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
606 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 886 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
607 }, 887 },
888 + "path-to-regexp": {
889 + "version": "0.1.7",
890 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
891 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
892 + },
608 "performance-now": { 893 "performance-now": {
609 "version": "2.1.0", 894 "version": "2.1.0",
610 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 895 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
...@@ -615,6 +900,15 @@ ...@@ -615,6 +900,15 @@
615 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 900 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
616 "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 901 "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
617 }, 902 },
903 + "proxy-addr": {
904 + "version": "2.0.4",
905 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
906 + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
907 + "requires": {
908 + "forwarded": "0.1.2",
909 + "ipaddr.js": "1.8.0"
910 + }
911 + },
618 "psl": { 912 "psl": {
619 "version": "1.1.29", 913 "version": "1.1.29",
620 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", 914 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
...@@ -630,6 +924,27 @@ ...@@ -630,6 +924,27 @@
630 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 924 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
631 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 925 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
632 }, 926 },
927 + "random-bytes": {
928 + "version": "1.0.0",
929 + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
930 + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
931 + },
932 + "range-parser": {
933 + "version": "1.2.0",
934 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
935 + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
936 + },
937 + "raw-body": {
938 + "version": "2.3.3",
939 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
940 + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
941 + "requires": {
942 + "bytes": "3.0.0",
943 + "http-errors": "1.6.3",
944 + "iconv-lite": "0.4.23",
945 + "unpipe": "1.0.0"
946 + }
947 + },
633 "readable-stream": { 948 "readable-stream": {
634 "version": "3.0.6", 949 "version": "3.0.6",
635 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", 950 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz",
...@@ -734,6 +1049,52 @@ ...@@ -734,6 +1049,52 @@
734 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 1049 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
735 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" 1050 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
736 }, 1051 },
1052 + "send": {
1053 + "version": "0.16.2",
1054 + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
1055 + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
1056 + "requires": {
1057 + "debug": "2.6.9",
1058 + "depd": "1.1.2",
1059 + "destroy": "1.0.4",
1060 + "encodeurl": "1.0.2",
1061 + "escape-html": "1.0.3",
1062 + "etag": "1.8.1",
1063 + "fresh": "0.5.2",
1064 + "http-errors": "1.6.3",
1065 + "mime": "1.4.1",
1066 + "ms": "2.0.0",
1067 + "on-finished": "2.3.0",
1068 + "range-parser": "1.2.0",
1069 + "statuses": "1.4.0"
1070 + },
1071 + "dependencies": {
1072 + "debug": {
1073 + "version": "2.6.9",
1074 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1075 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1076 + "requires": {
1077 + "ms": "2.0.0"
1078 + }
1079 + }
1080 + }
1081 + },
1082 + "serve-static": {
1083 + "version": "1.13.2",
1084 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
1085 + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
1086 + "requires": {
1087 + "encodeurl": "1.0.2",
1088 + "escape-html": "1.0.3",
1089 + "parseurl": "1.3.2",
1090 + "send": "0.16.2"
1091 + }
1092 + },
1093 + "setprototypeof": {
1094 + "version": "1.1.0",
1095 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
1096 + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
1097 + },
737 "sliced": { 1098 "sliced": {
738 "version": "1.0.1", 1099 "version": "1.0.1",
739 "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 1100 "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
...@@ -764,6 +1125,11 @@ ...@@ -764,6 +1125,11 @@
764 "tweetnacl": "0.14.5" 1125 "tweetnacl": "0.14.5"
765 } 1126 }
766 }, 1127 },
1128 + "statuses": {
1129 + "version": "1.4.0",
1130 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
1131 + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
1132 + },
767 "string_decoder": { 1133 "string_decoder": {
768 "version": "1.2.0", 1134 "version": "1.2.0",
769 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", 1135 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
...@@ -809,6 +1175,28 @@ ...@@ -809,6 +1175,28 @@
809 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1175 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
810 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1176 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
811 }, 1177 },
1178 + "type-is": {
1179 + "version": "1.6.16",
1180 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
1181 + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
1182 + "requires": {
1183 + "media-typer": "0.3.0",
1184 + "mime-types": "2.1.21"
1185 + }
1186 + },
1187 + "uid-safe": {
1188 + "version": "2.1.5",
1189 + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
1190 + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
1191 + "requires": {
1192 + "random-bytes": "1.0.0"
1193 + }
1194 + },
1195 + "unpipe": {
1196 + "version": "1.0.0",
1197 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1198 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1199 + },
812 "uri-js": { 1200 "uri-js": {
813 "version": "4.2.2", 1201 "version": "4.2.2",
814 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1202 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
...@@ -822,11 +1210,21 @@ ...@@ -822,11 +1210,21 @@
822 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1210 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
823 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1211 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
824 }, 1212 },
1213 + "utils-merge": {
1214 + "version": "1.0.1",
1215 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1216 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1217 + },
825 "uuid": { 1218 "uuid": {
826 "version": "3.3.2", 1219 "version": "3.3.2",
827 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 1220 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
828 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" 1221 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
829 }, 1222 },
1223 + "vary": {
1224 + "version": "1.1.2",
1225 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1226 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1227 + },
830 "verror": { 1228 "verror": {
831 "version": "1.10.0", 1229 "version": "1.10.0",
832 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1230 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
......
...@@ -13,7 +13,11 @@ ...@@ -13,7 +13,11 @@
13 "author": "", 13 "author": "",
14 "license": "ISC", 14 "license": "ISC",
15 "dependencies": { 15 "dependencies": {
16 + "body-parser": "^1.18.3",
16 "cheerio": "^1.0.0-rc.2", 17 "cheerio": "^1.0.0-rc.2",
18 + "ejs": "^2.6.1",
19 + "express": "^4.16.4",
20 + "express-session": "^1.15.6",
17 "iconv": "^2.3.1", 21 "iconv": "^2.3.1",
18 "mongoose": "^5.3.14", 22 "mongoose": "^5.3.14",
19 "request": "^2.88.0", 23 "request": "^2.88.0",
......
1 +var express = require('express');
2 +var app = express();
3 +var bodyParser = require('body-parser');
4 +//var session = require('express-session');
5 +var mongoose = require('mongoose');
6 +
7 +//DB연결
8 +mongoose.connect('mongodb://username:pwd@1.201.139.92/dbname');
9 +var db = mongoose.connection;
10 +
11 +//연결실패
12 +db.on('error', function()
13 +{
14 + console.log('Connection Failed!');
15 +});
16 +
17 +//연결 성공
18 +db.once('open', function()
19 +{
20 + console.log('Connected!');
21 +});
22 +
23 +
24 +// DB모델정의
25 +var Users = require('./models/users');
26 +
27 +// ejs사용
28 +// json사용설정
29 +app.set('view engine','ejs');
30 +app.use(bodyParser.json());
31 +app.use(bodyParser.urlencoded({extended: true}));
32 +
33 +// router import
34 +var router = require('./routing')(app, Users);
35 +
36 +var server = app.listen(23023, function()
37 +{
38 + var host = server.address().address;
39 + var port = server.address().port;
40 + console.log("http://%s:%s",host, port);
41 +});
...\ No newline at end of file ...\ No newline at end of file
1 +var mongoose = require('mongoose');
2 +
3 +var userSchema = mongoose.Schema
4 +(
5 + {
6 + id: String,
7 + pwd: String,
8 + name: String
9 + }
10 +);
11 +
12 +module.exports = mongoose.model('user',userSchema);
13 +
...@@ -39,4 +39,4 @@ TestModel.find(function(err, test){ ...@@ -39,4 +39,4 @@ TestModel.find(function(err, test){
39 }); 39 });
40 40
41 41
42 -//db.close()
...\ No newline at end of file ...\ No newline at end of file
42 +db.close()
...\ No newline at end of file ...\ No newline at end of file
......
1 +module.exports = function(app, Users)
2 +{
3 + app.get('/', function(req, res)
4 + {
5 + res.render("index");
6 + console.log("The index page!")
7 + });
8 +
9 + // 로그인 수행 - POST
10 + app.post('/login', function(req, res)
11 + {
12 + Users.find({id: req.body.id, pwd: req.body.pwd},{_id: 1}, function(err, user)
13 + {
14 + if(err)
15 + {
16 + console.log("Error!");
17 + res.send("Error!")
18 + }
19 +
20 + // 매칭정보 없음 - 로그인 실패
21 + if(user.length==0)
22 + {
23 + console.log("Login failed!")
24 + res.send("Login_failed");
25 + }
26 +
27 + // 매칭정보 있음 - 로그인 성공
28 + else
29 + {
30 + console.log("Login Success!")
31 + res.redirect("/main");
32 + // main으로 이동
33 + }
34 + });
35 + });
36 +
37 +
38 + // 메인화면 - 로그인 후 기본 검색화면
39 + app.get('/main', function(req,res)
40 + {
41 + res.render("main");
42 + console.log("The test page!")
43 + });
44 +
45 +
46 +
47 + // Join
48 + app.route('/join')
49 + .get(function(req, res) // 처음 Join화면 랜더 - GET
50 + {
51 + res.render("join")
52 + })
53 + .post(function(req, res) // 실제 Join 수행 - POST
54 + {
55 + // user정보 입력
56 + var user = new Users();
57 + user.id = req.body.id;
58 + user.pwd = req.body.pwd;
59 + user.name = req.body.name;
60 +
61 + // DB저장
62 + user.save(function(err)
63 + {
64 + if(err)
65 + {
66 + console.log(err);
67 + res.send("Error!")
68 + }
69 + else
70 + {
71 + console.log("Join Success");
72 + res.redirect('/');
73 + }
74 + });
75 + });
76 +
77 +
78 +
79 +}
...\ No newline at end of file ...\ No newline at end of file
1 +<div class="contents_index">
2 + <form method="POST" action="/login">
3 + <label>id:</label><input type="text" name="id"><br/>
4 + <label>pwd:</label><input type="password" name="pwd"><br/>
5 + <button type="submit">로그인</button>
6 + </form>
7 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<div class="contents_index">
2 + <form method="POST" action="/join">
3 + <label>id:</label><input type="text" name="id"><br/>
4 + <label>pwd:</label><input type="password" name="pwd"><br/>
5 + <label>name:</label><input type="text" name="name"><br/>
6 + <button type="submit">가입</button>
7 + </form>
8 + <a href='/'><button>취소</button></a>
9 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<div class="contents_main">
2 + <form method="POST" action="/join">
3 + <label>id:</label><input type="text" name="id"><br/>
4 + <label>pwd:</label><input type="password" name="pwd"><br/>
5 + <label>name:</label><input type="text" name="name"><br/>
6 + <button type="submit">가입</button>
7 + </form>
8 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<html>
2 +<head>
3 + <title>Index</title>
4 +</head>
5 +<body>
6 + <% include ./navigation_index.ejs %>
7 + <% include ./contents_index.ejs %>
8 +</body>
9 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<html>
2 +<head>
3 + <title>Join</title>
4 +</head>
5 +<body>
6 + <% include ./navigation_index.ejs %>
7 + <% include ./contents_join.ejs %>
8 +</body>
9 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<html>
2 +<head>
3 + <title>Main</title>
4 +</head>
5 +<body>
6 + <% include ./navigation_main.ejs %>
7 + <% include ./contents_main.ejs %>
8 +</body>
9 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<div class="navigation_index">
2 + <a href='/join'><button>회원가입</button></a>
3 + <a href='/'><button>Index</button></a>
4 +</div>
...\ No newline at end of file ...\ No newline at end of file
1 +<div class="navigation_main">
2 + <button>로그아웃</button>
3 + <button>검색</button>
4 + <button>마이페이지</button>
5 + <button>나만의시간표</button>
6 +</div>
...\ No newline at end of file ...\ No newline at end of file