김대철

카페 후기정보 등록 API 작성

index.js comment 정보 입력 후 테이블 저장 구현
1 var express = require("express"); 1 var express = require("express");
2 var router = express.Router(); 2 var router = express.Router();
3 3
4 -var request = require("request");
5 var bodyParser = require("body-parser"); 4 var bodyParser = require("body-parser");
6 5
7 var { OAuth2Client } = require("google-auth-library"); 6 var { OAuth2Client } = require("google-auth-library");
8 -var querystring = require("querystring");
9 7
10 var CLIENT_ID = 8 var CLIENT_ID =
11 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com"; 9 "94679084723-s5f0686p2porp9mkakrp1p89a48n24nj.apps.googleusercontent.com";
...@@ -13,15 +11,18 @@ var client = new OAuth2Client(CLIENT_ID); ...@@ -13,15 +11,18 @@ var client = new OAuth2Client(CLIENT_ID);
13 var mysql = require("mysql"); 11 var mysql = require("mysql");
14 var session = require("express-session"); 12 var session = require("express-session");
15 var FileStore = require("session-file-store")(session); 13 var FileStore = require("session-file-store")(session);
14 +
16 router.use(bodyParser.urlencoded({ extended: false })); //url인코딩 x 15 router.use(bodyParser.urlencoded({ extended: false })); //url인코딩 x
17 -router.use(bodyParser.json()); //json방식으로 파 16 +router.use(bodyParser.json()); //json방식으로 파
18 router.use( 17 router.use(
19 session({ 18 session({
20 secret: "209", // 암호화 19 secret: "209", // 암호화
21 resave: false, 20 resave: false,
22 saveUninitialized: true, 21 saveUninitialized: true,
23 store: new FileStore(), 22 store: new FileStore(),
24 - })) 23 + })
24 +);
25 +
25 var connection = mysql.createConnection({ 26 var connection = mysql.createConnection({
26 host: "localhost", 27 host: "localhost",
27 user: "root", 28 user: "root",
...@@ -29,6 +30,7 @@ var connection = mysql.createConnection({ ...@@ -29,6 +30,7 @@ var connection = mysql.createConnection({
29 database: "caferecommend", 30 database: "caferecommend",
30 }); 31 });
31 connection.connect(); 32 connection.connect();
33 +
32 /* GET home page. */ 34 /* GET home page. */
33 router.get("/", function (req, res, next) { 35 router.get("/", function (req, res, next) {
34 res.render("index", { 36 res.render("index", {
...@@ -49,7 +51,7 @@ router.post("/index", (req, res) => { ...@@ -49,7 +51,7 @@ router.post("/index", (req, res) => {
49 audience: CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend 51 audience: CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend
50 }); 52 });
51 const payload = ticket.getPayload(); 53 const payload = ticket.getPayload();
52 - const userid = payload['sub'] 54 + const userid = payload["sub"];
53 } 55 }
54 verify() 56 verify()
55 .then(() => { 57 .then(() => {
...@@ -61,7 +63,7 @@ router.post("/index", (req, res) => { ...@@ -61,7 +63,7 @@ router.post("/index", (req, res) => {
61 63
62 router.get("/login", checkAuthenticated, (req, res) => { 64 router.get("/login", checkAuthenticated, (req, res) => {
63 let user = req.user; 65 let user = req.user;
64 - req.session.user=user; 66 + req.session.user = user;
65 var sql = "SELECT * FROM USER WHERE EMAIL=?"; 67 var sql = "SELECT * FROM USER WHERE EMAIL=?";
66 var parameter = [req.session.user.email]; 68 var parameter = [req.session.user.email];
67 connection.query(sql, parameter, function (err, row) { 69 connection.query(sql, parameter, function (err, row) {
...@@ -111,7 +113,7 @@ router.post("/login", (req, res) => { ...@@ -111,7 +113,7 @@ router.post("/login", (req, res) => {
111 req.session.user.age, 113 req.session.user.age,
112 req.session.user.gender, 114 req.session.user.gender,
113 ]; 115 ];
114 - connection.query(sql, parameter, function (err, row) { 116 + connection.query(sql, parameter, function (err) {
115 if (err) { 117 if (err) {
116 console.log(err); 118 console.log(err);
117 } else { 119 } else {
...@@ -123,8 +125,6 @@ router.post("/login", (req, res) => { ...@@ -123,8 +125,6 @@ router.post("/login", (req, res) => {
123 }); 125 });
124 }); 126 });
125 127
126 -module.exports = router;
127 -
128 function checkAuthenticated(req, res, next) { 128 function checkAuthenticated(req, res, next) {
129 let token = req.cookies["session-token"]; 129 let token = req.cookies["session-token"];
130 let user = {}; 130 let user = {};
...@@ -158,3 +158,34 @@ router.get("/logout", function (req, res) { ...@@ -158,3 +158,34 @@ router.get("/logout", function (req, res) {
158 req.session.destroy(); //세션비우기 158 req.session.destroy(); //세션비우기
159 res.redirect("/"); 159 res.redirect("/");
160 }); 160 });
161 +
162 +// 카페 후기 등록
163 +router.post("/comment", function (req, res) {
164 + var cafeId = req.body.cafeId;
165 + var price = req.body.price;
166 + var kindness = req.body.kindness;
167 + var noise = req.body.noise;
168 + var accessibility = req.body.accessibility;
169 +
170 + // 입력받지 않은 데이터가 하나라도 존재 (카페아이디는 후기작성시 자동으로 받아옴)
171 + if (!price || !kindness || !noise || !accessibility) {
172 + console.log("입력받지 않은 데이터 존재");
173 + return; // 후기작성으로 다시 이동
174 + }
175 +
176 + var sql =
177 + "INSERT INTO COMMENT(CAFE_ID, PRICE, KINDNESS, NOISE, ACCESSIBILITY) VALUES(?,?,?,?,?)";
178 +
179 + var parameter = [cafeId, price, kindness, noise, accessibility];
180 +
181 + connection.query(sql, parameter, function (err) {
182 + if (err) {
183 + console.log(err);
184 + } else {
185 + console.log("새로운 comment 데이터 입력");
186 + }
187 + });
188 + return res.render("map");
189 +});
190 +
191 +module.exports = router;
......
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621766908867,"user":{"name":"‍김대철[학생](소프트웨어융합대학 컴퓨터공학과)","email":"kdc9619@khu.ac.kr","nickname":"Meerkat","age":"26","gender":"male"}}
...\ No newline at end of file ...\ No newline at end of file
1 +{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"__lastAccess":1621952163379}
...\ No newline at end of file ...\ No newline at end of file
This diff is collapsed. Click to expand it.