Showing
7 changed files
with
63 additions
and
72 deletions
| ... | @@ -19,6 +19,19 @@ | ... | @@ -19,6 +19,19 @@ |
| 19 | "kuler": "^2.0.0" | 19 | "kuler": "^2.0.0" |
| 20 | } | 20 | } |
| 21 | }, | 21 | }, |
| 22 | + "@types/mysql": { | ||
| 23 | + "version": "2.15.21", | ||
| 24 | + "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.21.tgz", | ||
| 25 | + "integrity": "sha512-NPotx5CVful7yB+qZbWtXL2fA4e7aEHkihHLjklc6ID8aq7bhguHgeIoC1EmSNTAuCgI6ZXrjt2ZSaXnYX0EUg==", | ||
| 26 | + "requires": { | ||
| 27 | + "@types/node": "*" | ||
| 28 | + } | ||
| 29 | + }, | ||
| 30 | + "@types/node": { | ||
| 31 | + "version": "17.0.41", | ||
| 32 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", | ||
| 33 | + "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==" | ||
| 34 | + }, | ||
| 22 | "accepts": { | 35 | "accepts": { |
| 23 | "version": "1.3.8", | 36 | "version": "1.3.8", |
| 24 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", | 37 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", |
| ... | @@ -334,9 +347,9 @@ | ... | @@ -334,9 +347,9 @@ |
| 334 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" | 347 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" |
| 335 | }, | 348 | }, |
| 336 | "denque": { | 349 | "denque": { |
| 337 | - "version": "2.0.1", | 350 | + "version": "1.5.1", |
| 338 | - "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", | 351 | + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", |
| 339 | - "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" | 352 | + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" |
| 340 | }, | 353 | }, |
| 341 | "depd": { | 354 | "depd": { |
| 342 | "version": "2.0.0", | 355 | "version": "2.0.0", |
| ... | @@ -928,13 +941,14 @@ | ... | @@ -928,13 +941,14 @@ |
| 928 | } | 941 | } |
| 929 | }, | 942 | }, |
| 930 | "mysql2": { | 943 | "mysql2": { |
| 931 | - "version": "2.3.3", | 944 | + "version": "2.2.0", |
| 932 | - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", | 945 | + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.2.0.tgz", |
| 933 | - "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", | 946 | + "integrity": "sha512-3DvnvXihGiFrq6oaMjGN+gR/oreZA5cA1bI7/yBAvReo2W2I6cHd8vfX/9mk9FQEebubxqB/4VAlIJTlnYUEEg==", |
| 934 | "requires": { | 947 | "requires": { |
| 935 | - "denque": "^2.0.1", | 948 | + "@types/mysql": "^2.15.7", |
| 949 | + "denque": "^1.4.1", | ||
| 936 | "generate-function": "^2.3.1", | 950 | "generate-function": "^2.3.1", |
| 937 | - "iconv-lite": "^0.6.3", | 951 | + "iconv-lite": "^0.6.2", |
| 938 | "long": "^4.0.0", | 952 | "long": "^4.0.0", |
| 939 | "lru-cache": "^6.0.0", | 953 | "lru-cache": "^6.0.0", |
| 940 | "named-placeholders": "^1.1.2", | 954 | "named-placeholders": "^1.1.2", | ... | ... |
| ... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
| 17 | "jsonwebtoken": "^8.5.1", | 17 | "jsonwebtoken": "^8.5.1", |
| 18 | "method-override": "^3.0.0", | 18 | "method-override": "^3.0.0", |
| 19 | "mysql": "^2.18.1", | 19 | "mysql": "^2.18.1", |
| 20 | - "mysql2": "^2.0.0", | 20 | + "mysql2": "^2.2.0", |
| 21 | "regex-email": "^1.0.2", | 21 | "regex-email": "^1.0.2", |
| 22 | "request": "^2.88.2", | 22 | "request": "^2.88.2", |
| 23 | "winston": "^3.2.1", | 23 | "winston": "^3.2.1", | ... | ... |
| ... | @@ -14,7 +14,6 @@ class User { | ... | @@ -14,7 +14,6 @@ class User { |
| 14 | const client = this.body; | 14 | const client = this.body; |
| 15 | 15 | ||
| 16 | try { | 16 | try { |
| 17 | - const connection = await pool.getConnection(async (conn) => conn); | ||
| 18 | try { | 17 | try { |
| 19 | const {id, password} = await UserStorage.getUserInfo(connection, client.id); | 18 | const {id, password} = await UserStorage.getUserInfo(connection, client.id); |
| 20 | // console.log(id, password); | 19 | // console.log(id, password); |
| ... | @@ -39,15 +38,15 @@ class User { | ... | @@ -39,15 +38,15 @@ class User { |
| 39 | 38 | ||
| 40 | async register() { | 39 | async register() { |
| 41 | const client = this.body; | 40 | const client = this.body; |
| 42 | - | ||
| 43 | try { | 41 | try { |
| 44 | const connection = await pool.getConnection(async (conn) => conn); | 42 | const connection = await pool.getConnection(async (conn) => conn); |
| 43 | + // console.log(client); | ||
| 45 | try { | 44 | try { |
| 46 | const response = await UserStorage.save(connection, client); | 45 | const response = await UserStorage.save(connection, client); |
| 47 | - // console.log(response); | 46 | + // console.log("테스트2 : ", response); |
| 48 | return response; | 47 | return response; |
| 49 | } catch (err) { | 48 | } catch (err) { |
| 50 | - | 49 | + console.log(err); |
| 51 | return {success: false, msg : err}; | 50 | return {success: false, msg : err}; |
| 52 | } finally { | 51 | } finally { |
| 53 | connection.release(); | 52 | connection.release(); | ... | ... |
| 1 | 'use strict'; | 1 | 'use strict'; |
| 2 | + | ||
| 3 | +const { pool } = require("../config/db"); | ||
| 4 | + | ||
| 2 | //for DB CRUD | 5 | //for DB CRUD |
| 3 | -const pool = require("../config/db"); | 6 | + |
| 4 | 7 | ||
| 5 | class UserStorage { | 8 | class UserStorage { |
| 6 | constructor(body) { | 9 | constructor(body) { |
| 7 | this.body = body; | 10 | this.body = body; |
| 11 | + // this.connection = await pool.getConnection(async (conn) => conn); | ||
| 8 | } | 12 | } |
| 13 | + | ||
| 9 | // static getUsers(isAll, ...fields) {} | 14 | // static getUsers(isAll, ...fields) {} |
| 10 | static async getUserInfo(connection, id) { | 15 | static async getUserInfo(connection, id) { |
| 11 | return new Promise((resolve, reject) => { | 16 | return new Promise((resolve, reject) => { |
| ... | @@ -14,23 +19,28 @@ class UserStorage { | ... | @@ -14,23 +19,28 @@ class UserStorage { |
| 14 | if (err) reject(`${err}`); | 19 | if (err) reject(`${err}`); |
| 15 | // console.log(data[0]); | 20 | // console.log(data[0]); |
| 16 | resolve(data[0]); | 21 | resolve(data[0]); |
| 22 | + pool.releaseConnection(conn); | ||
| 17 | }); | 23 | }); |
| 18 | }); | 24 | }); |
| 19 | } | 25 | } |
| 20 | 26 | ||
| 21 | - static async save(connection, userInfo) { | 27 | + static async save (connection, userInfo) { |
| 22 | - return new Promise((resolve, reject) => { | ||
| 23 | const query = "INSERT INTO users(id, name, password) VALUES(?, ?, ?);"; | 28 | const query = "INSERT INTO users(id, name, password) VALUES(?, ?, ?);"; |
| 24 | - connection.query( | 29 | + try { |
| 25 | - query, | 30 | + const [rows] = await connection.query({ |
| 26 | - [userInfo.id, userInfo.name, userInfo.password], | 31 | + sql: query, |
| 27 | - (err, data) => { | 32 | + timeout: 30000, |
| 28 | - if (err) reject(`${err}`); | 33 | + values: [userInfo.id, userInfo.name, userInfo.password] |
| 29 | - // console.log(data[0]); | ||
| 30 | - resolve({ success: true}); | ||
| 31 | - } | ||
| 32 | - ); | ||
| 33 | }); | 34 | }); |
| 35 | + // console.log(fields); | ||
| 36 | + if (rows.affectedRows) { | ||
| 37 | + return {success: true}; | ||
| 38 | + } else { | ||
| 39 | + return {success: false}; | ||
| 40 | + } | ||
| 41 | + } catch (error) { | ||
| 42 | + console.log(error); | ||
| 43 | + } | ||
| 34 | } | 44 | } |
| 35 | 45 | ||
| 36 | } | 46 | } | ... | ... |
| ... | @@ -8,7 +8,7 @@ const id = document.querySelector("#id"), | ... | @@ -8,7 +8,7 @@ const id = document.querySelector("#id"), |
| 8 | 8 | ||
| 9 | registerBtn.addEventListener("click", register); | 9 | registerBtn.addEventListener("click", register); |
| 10 | 10 | ||
| 11 | -function register() { | 11 | +async function register() { |
| 12 | if(!id.value) { | 12 | if(!id.value) { |
| 13 | return alert("아이디를 입력해주세요.") | 13 | return alert("아이디를 입력해주세요.") |
| 14 | } | 14 | } |
| ... | @@ -27,28 +27,23 @@ function register() { | ... | @@ -27,28 +27,23 @@ function register() { |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | const req = { | 29 | const req = { |
| 30 | - id : id.value, | 30 | + id: id.value, |
| 31 | - name : name.value, | 31 | + name: name.value, |
| 32 | - password : password.value, | 32 | + password: password.value, |
| 33 | }; | 33 | }; |
| 34 | 34 | ||
| 35 | - fetch("/register", { | 35 | + console.log("id : ", req.id); |
| 36 | + try { | ||
| 37 | + const response = await fetch("/register", { | ||
| 36 | method: "POST", | 38 | method: "POST", |
| 37 | headers: { | 39 | headers: { |
| 38 | "Content-Type": "application/json" | 40 | "Content-Type": "application/json" |
| 39 | }, | 41 | }, |
| 40 | body: JSON.stringify(req), | 42 | body: JSON.stringify(req), |
| 41 | - }) | ||
| 42 | - .then((res) => res.json()) | ||
| 43 | - .then((res) => { | ||
| 44 | - if (res.success) { | ||
| 45 | - //성공하면 이동 | ||
| 46 | - location.href = "/login"; | ||
| 47 | - } else { | ||
| 48 | - alert(res.msg); | ||
| 49 | - } | ||
| 50 | - }) | ||
| 51 | - .catch((err) => { | ||
| 52 | - console.error("회원가입 중 에러 발생"); | ||
| 53 | }); | 43 | }); |
| 44 | + console.log("테스트 : ", response); | ||
| 45 | + } catch(e) { | ||
| 46 | + console.log(e); | ||
| 47 | + } | ||
| 48 | + | ||
| 54 | } | 49 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -31,6 +31,8 @@ const process = { | ... | @@ -31,6 +31,8 @@ const process = { |
| 31 | register: async (req, res) => { | 31 | register: async (req, res) => { |
| 32 | const user = new User(req.body); | 32 | const user = new User(req.body); |
| 33 | const response = await user.register(); | 33 | const response = await user.register(); |
| 34 | + // console.log(res.json(response)); | ||
| 35 | + // console.log(res.json(response).statusCode); => 이거도 잘 찍혔음. | ||
| 34 | return res.json(response); | 36 | return res.json(response); |
| 35 | }, | 37 | }, |
| 36 | 38 | ||
| ... | @@ -39,23 +41,6 @@ const process = { | ... | @@ -39,23 +41,6 @@ const process = { |
| 39 | // const response = await restaurant.restaurants(); | 41 | // const response = await restaurant.restaurants(); |
| 40 | // return res.json(response); | 42 | // return res.json(response); |
| 41 | // }, | 43 | // }, |
| 42 | - // const id = req.body.id, | ||
| 43 | - // password = req.body.password; | ||
| 44 | - // const users = UserStorage.getUsers("id", "password"); | ||
| 45 | - // // console.log(UserStorage.getUsers("id", "password","name")); | ||
| 46 | - // const response = {}; | ||
| 47 | - | ||
| 48 | - // if (users.id.includes(id)) { | ||
| 49 | - // const idx = users.id.indexOf(id); | ||
| 50 | - // if (users.password[idx] === password) { | ||
| 51 | - // response.success = true; | ||
| 52 | - // return res.json(response); | ||
| 53 | - // } | ||
| 54 | - // } | ||
| 55 | - | ||
| 56 | - // response.success = false; | ||
| 57 | - // response.msg = "로그인에 실패하였습니다." | ||
| 58 | - // return res.json(response); | ||
| 59 | }; | 44 | }; |
| 60 | 45 | ||
| 61 | module.exports = { | 46 | module.exports = { | ... | ... |
| 1 | module.exports = function (app) { | 1 | module.exports = function (app) { |
| 2 | //controller갖고있는 모듈 생성 | 2 | //controller갖고있는 모듈 생성 |
| 3 | const index = require("../../models/Restaurant"); | 3 | const index = require("../../models/Restaurant"); |
| 4 | + // const user = require("../../models/User"); | ||
| 4 | const jwtMiddleware = require("../../config/jwtMiddleware"); | 5 | const jwtMiddleware = require("../../config/jwtMiddleware"); |
| 5 | 6 | ||
| 6 | // 식당 목록 조회 | 7 | // 식당 목록 조회 |
| 7 | app.get("/restaurants", index.readRestaurants); | 8 | app.get("/restaurants", index.readRestaurants); |
| 8 | - // const express = require("express"); | ||
| 9 | - // const router = express.Router(); | ||
| 10 | - // const ctrl = require("./home.ctrl"); | ||
| 11 | - | ||
| 12 | - // router.get("/", ctrl.output.hello); | ||
| 13 | - // router.get("/login", ctrl.output.login); | ||
| 14 | - // router.get("/register", ctrl.output.register); | ||
| 15 | - | ||
| 16 | - | ||
| 17 | - // router.post("/login", ctrl.process.login); | ||
| 18 | - // router.post("/register", ctrl.process.register); | ||
| 19 | - | ||
| 20 | - // module.exports = router; | ||
| 21 | }; | 9 | }; |
| 22 | 10 | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment