Showing
7 changed files
with
134 additions
and
5 deletions
api/deck/getDeck.js
0 → 100644
| 1 | +const mysql=require('../../database/mysql') | ||
| 2 | + | ||
| 3 | +exports.GetDeck=(res,req)=>{ | ||
| 4 | + const userId='test' | ||
| 5 | + | ||
| 6 | + const getDeck=()=>{ | ||
| 7 | + return new Promise((resolve,reject)=>{ | ||
| 8 | + mysql.getConnection((err,connection)=>{ | ||
| 9 | + if (err) throw err | ||
| 10 | + connection.query(`select id,deckTitle from deck where deckOwner=\'${userId}\'`,(err,results,fields)=>{ | ||
| 11 | + if (err) throw err | ||
| 12 | + console.log(JSON.stringify(results)) | ||
| 13 | + resolve(JSON.stringify(results)) | ||
| 14 | + }) | ||
| 15 | + connection.release() | ||
| 16 | + }) | ||
| 17 | + }) | ||
| 18 | + | ||
| 19 | + } | ||
| 20 | + getDeck() | ||
| 21 | + .then((results)=>{ | ||
| 22 | + return res.status(200).json(results) | ||
| 23 | + }) | ||
| 24 | + .catch((err)=>{ | ||
| 25 | + //return res.status(500).json(err||err.message) | ||
| 26 | + }) | ||
| 27 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -2,7 +2,9 @@ const express=require('express') | ... | @@ -2,7 +2,9 @@ const express=require('express') |
| 2 | const router=express.Router() | 2 | const router=express.Router() |
| 3 | 3 | ||
| 4 | const newDeck=require('./newDeck') | 4 | const newDeck=require('./newDeck') |
| 5 | +const getDeck=require('./getDeck') | ||
| 5 | 6 | ||
| 6 | router.post('/newdeck',newDeck.NewDeck) | 7 | router.post('/newdeck',newDeck.NewDeck) |
| 8 | +router.get('/getdeck',getDeck.GetDeck) | ||
| 7 | 9 | ||
| 8 | module.exports=router | 10 | module.exports=router |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | -const rp=require('request-promise') | ||
| 2 | -const mysql=require('../../database/mysql') | ||
| 3 | const crawler=require('./crawler') | 1 | const crawler=require('./crawler') |
| 4 | const cheerio=require('cheerio') | 2 | const cheerio=require('cheerio') |
| 5 | const addCards=require('../card/addCards') | 3 | const addCards=require('../card/addCards') | ... | ... |
| ... | @@ -8,6 +8,8 @@ const rp=require('request-promise') | ... | @@ -8,6 +8,8 @@ const rp=require('request-promise') |
| 8 | const morgan=require('morgan') | 8 | const morgan=require('morgan') |
| 9 | const cheerio=require('cheerio') | 9 | const cheerio=require('cheerio') |
| 10 | const mysqlApostrophe=require('mysql-apostrophe') | 10 | const mysqlApostrophe=require('mysql-apostrophe') |
| 11 | +const ejs=require('ejs') | ||
| 12 | +const mysql=require('./database/mysql') | ||
| 11 | require('dotenv').config() | 13 | require('dotenv').config() |
| 12 | const app=express() | 14 | const app=express() |
| 13 | 15 | ||
| ... | @@ -83,9 +85,22 @@ app.get('/decklist',(req,res)=>{ | ... | @@ -83,9 +85,22 @@ app.get('/decklist',(req,res)=>{ |
| 83 | if(!req.session.sid) | 85 | if(!req.session.sid) |
| 84 | res.redirect('/login') | 86 | res.redirect('/login') |
| 85 | else{ | 87 | else{ |
| 86 | - fs.readFile('./views/html/decklist.html',(err,data)=>{ | 88 | + mysql.getConnection((err,connection)=>{ |
| 87 | - res.writeHead(200,{'Content-Type':'text/html'}) | 89 | + if (err) throw err |
| 88 | - res.end(data) | 90 | + connection.query(`select id,deckTitle from deck where deckOwner=\'${req.session.sid}\'`,(err,results,fields)=>{ |
| 91 | + if (err) throw err | ||
| 92 | + else{ | ||
| 93 | + console.log(results) | ||
| 94 | + console.log('length : '+results.length) | ||
| 95 | + fs.readFile('./views/ejs/decklist.ejs','utf-8',(err,data)=>{ | ||
| 96 | + res.writeHead(200,{'Content-Type':'text/html'}) | ||
| 97 | + res.end(ejs.render(data,{ | ||
| 98 | + decks:results, | ||
| 99 | + })) | ||
| 100 | + }) | ||
| 101 | + } | ||
| 102 | + }) | ||
| 103 | + connection.release() | ||
| 89 | }) | 104 | }) |
| 90 | } | 105 | } |
| 91 | 106 | ... | ... |
| ... | @@ -295,6 +295,11 @@ | ... | @@ -295,6 +295,11 @@ |
| 295 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | 295 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", |
| 296 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | 296 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" |
| 297 | }, | 297 | }, |
| 298 | + "ejs": { | ||
| 299 | + "version": "2.6.1", | ||
| 300 | + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", | ||
| 301 | + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" | ||
| 302 | + }, | ||
| 298 | "encodeurl": { | 303 | "encodeurl": { |
| 299 | "version": "1.0.2", | 304 | "version": "1.0.2", |
| 300 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | 305 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ... | ... |
| ... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
| 18 | "charset": "^1.0.1", | 18 | "charset": "^1.0.1", |
| 19 | "cheerio": "^1.0.0-rc.2", | 19 | "cheerio": "^1.0.0-rc.2", |
| 20 | "dotenv": "^6.1.0", | 20 | "dotenv": "^6.1.0", |
| 21 | + "ejs": "^2.6.1", | ||
| 21 | "express": "^4.16.4", | 22 | "express": "^4.16.4", |
| 22 | "express-session": "^1.15.6", | 23 | "express-session": "^1.15.6", |
| 23 | "fs": "0.0.1-security", | 24 | "fs": "0.0.1-security", | ... | ... |
views/ejs/decklist.ejs
0 → 100644
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html lang="ko"> | ||
| 3 | +<head> | ||
| 4 | + <meta charset="utf-8"> | ||
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
| 6 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 7 | + <title>Who Are You? - 하스스톤 멀리건 도우미</title> | ||
| 8 | + | ||
| 9 | + <!-- 부트스트랩 --> | ||
| 10 | + <link href="../../static/bootstrap-3.3.2-dist/css/bootstrap.min.css?ver=1" rel="stylesheet"> | ||
| 11 | + <link href="../../static/main.css" rel="stylesheet"> | ||
| 12 | + <!-- IE8 에서 HTML5 요소와 미디어 쿼리를 위한 HTML5 shim 와 Respond.js --> | ||
| 13 | + <!-- WARNING: Respond.js 는 당신이 file:// 을 통해 페이지를 볼 때는 동작하지 않습니다. --> | ||
| 14 | + <!--[if lt IE 9]> | ||
| 15 | + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | ||
| 16 | + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | ||
| 17 | + <![endif]--> | ||
| 18 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> | ||
| 19 | + <script> | ||
| 20 | + $(document).ready(function(){ | ||
| 21 | + $('#logoutButton').click(function(){ | ||
| 22 | + $.ajax({ | ||
| 23 | + type:'POST', | ||
| 24 | + url:'/logout', | ||
| 25 | + success:function(result){ | ||
| 26 | + alert('로그아웃 성공!') | ||
| 27 | + window.location.href='/main' | ||
| 28 | + }, | ||
| 29 | + error:function(result){ | ||
| 30 | + alert('로그아웃 실패!') | ||
| 31 | + return false | ||
| 32 | + } | ||
| 33 | + }) | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + </script> | ||
| 37 | +</head> | ||
| 38 | +<body> | ||
| 39 | + <nav class="navbar-default navbar-fixed-top"> | ||
| 40 | + <div class="container"> | ||
| 41 | + <div class="navbar-header"> | ||
| 42 | + <button class="navbar-toggle collapsed" aria-expanded="false" aria-controls="navbar" type="button" data-toggle="collapse" data-target="#navbar"> | ||
| 43 | + <span class="sr-only">Toggle navigation</span> | ||
| 44 | + <span class="icon-bar"></span> | ||
| 45 | + <span class="icon-bar"></span> | ||
| 46 | + <span class="icon-bar"></span> | ||
| 47 | + </button> | ||
| 48 | + <a class="navbar-brand" href="/main">Who Are You?</a> | ||
| 49 | + </div> | ||
| 50 | + <div class="navbar-collapse collapse" id="navbar" aria-expanded="false" style="height: 1px;"> | ||
| 51 | + <ul class="nav navbar-nav"> | ||
| 52 | + </ul> | ||
| 53 | + <div class="navbar-right"> | ||
| 54 | + <input type="button" class="btn navbar-btn" id="logoutButton" style="color:#000;" value="로그아웃" /> | ||
| 55 | + </div> | ||
| 56 | + </div> | ||
| 57 | + </div> | ||
| 58 | + </nav> | ||
| 59 | + | ||
| 60 | + <div class="container show-grid" > | ||
| 61 | + <div class="padding" style="width:100px"></div> | ||
| 62 | + <div class="container" style="width:50%;"> | ||
| 63 | + <div class="row"> | ||
| 64 | + <h3 class="form-signin-heading col-md-10" style="text-align: left;">내 덱 리스트</h3> | ||
| 65 | + <a href="/newdeck"><input type="button" class="btn col-md-2" value="+" style="margin-top: 18px;" /></a> | ||
| 66 | + </div> | ||
| 67 | + <br> | ||
| 68 | + <table class="table"> | ||
| 69 | + <% for ( var i=0;i<decks.length;i++) { %> | ||
| 70 | + <tr><td style="text-align: center;"><a class="list-group-item" href="/ingame?deck=<%= decks[i].id %>"><%= decks[i].deckTitle %></a></td></tr> | ||
| 71 | + <% } %> | ||
| 72 | + </table> | ||
| 73 | + </div> | ||
| 74 | + </div> | ||
| 75 | + | ||
| 76 | + <!-- jQuery (부트스트랩의 자바스크립트 플러그인을 위해 필요합니다) --> | ||
| 77 | + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> | ||
| 78 | + <!-- 모든 컴파일된 플러그인을 포함합니다 (아래), 원하지 않는다면 필요한 각각의 파일을 포함하세요 --> | ||
| 79 | + <script src="../../static/bootstrap-3.3.2-dist/js/bootstrap.min.js"></script> | ||
| 80 | +</body> | ||
| 81 | +</html> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment