Showing
6 changed files
with
189 additions
and
9 deletions
| ... | @@ -6,6 +6,8 @@ var logger = require('morgan'); | ... | @@ -6,6 +6,8 @@ var logger = require('morgan'); |
| 6 | var indexRouter = require('./routes/index'); | 6 | var indexRouter = require('./routes/index'); |
| 7 | var usersRouter = require('./routes/users'); | 7 | var usersRouter = require('./routes/users'); |
| 8 | 8 | ||
| 9 | + | ||
| 10 | + | ||
| 9 | var app = express(), | 11 | var app = express(), |
| 10 | server= require('http').createServer(app), | 12 | server= require('http').createServer(app), |
| 11 | SOCKETIO=require('./lib/socketio.js'); | 13 | SOCKETIO=require('./lib/socketio.js'); |
| ... | @@ -20,12 +22,16 @@ app.use(express.urlencoded({ extended: false })); | ... | @@ -20,12 +22,16 @@ app.use(express.urlencoded({ extended: false })); |
| 20 | app.use(cookieParser()); | 22 | app.use(cookieParser()); |
| 21 | app.use('/',express.static(path.join(__dirname, 'public'))); | 23 | app.use('/',express.static(path.join(__dirname, 'public'))); |
| 22 | app.use('/',express.static(path.join(__dirname, 'code'))); | 24 | app.use('/',express.static(path.join(__dirname, 'code'))); |
| 23 | -app.use('/name/:name/birth',express.static(path.join(__dirname, 'public'))); | 25 | +app.use('/Cname/:Cname/Cbirth',express.static(path.join(__dirname, 'public'))); |
| 24 | -app.use('/name/:name/birth',express.static(path.join(__dirname, 'code'))); | 26 | +app.use('/Cname/:Cname/Cbirth',express.static(path.join(__dirname, 'code'))); |
| 27 | +app.use('/Fname/:Fname/Fbirth',express.static(path.join(__dirname, 'public'))); | ||
| 28 | +app.use('/Fname/:Fname/Fbirth',express.static(path.join(__dirname, 'code'))); | ||
| 25 | 29 | ||
| 26 | app.use('/', indexRouter); | 30 | app.use('/', indexRouter); |
| 27 | app.use('/users', usersRouter); | 31 | app.use('/users', usersRouter); |
| 28 | 32 | ||
| 33 | + | ||
| 34 | + | ||
| 29 | // catch 404 and forward to error handler | 35 | // catch 404 and forward to error handler |
| 30 | app.use(function(req, res, next) { | 36 | app.use(function(req, res, next) { |
| 31 | next(createError(404)); | 37 | next(createError(404)); | ... | ... |
| ... | @@ -5,9 +5,73 @@ var db = require('../lib/db'); | ... | @@ -5,9 +5,73 @@ var db = require('../lib/db'); |
| 5 | /* GET home page. */ | 5 | /* GET home page. */ |
| 6 | 6 | ||
| 7 | router.post('/starting' , (req,res) => { | 7 | router.post('/starting' , (req,res) => { |
| 8 | - res.redirect(`/name/${req.body.name}/birth/${req.body.birth}`); | 8 | + res.redirect(`/Cname/${req.body.name}/Cbirth/${req.body.birth}`); |
| 9 | }) | 9 | }) |
| 10 | -router.get('/name/:name/birth/:birth', (req,res) => { | 10 | +router.post('/forecasting' , (req,res) =>{ |
| 11 | + res.redirect(`/Fname/${req.body.name}/Fbirth/${req.body.birth}`); | ||
| 12 | +}) | ||
| 13 | +router.get('/Fname/:Fname/Fbirth/:Fbirth',(req,res)=>{ | ||
| 14 | + | ||
| 15 | + // 렌더링 변수 | ||
| 16 | + var time = new Array(); // 타임스탬프 | ||
| 17 | + var ptArr = new Array(); // 현재 온도 | ||
| 18 | + var wsArr = new Array(); // 풍속 | ||
| 19 | + var rainArr = new Array(); // 강우량 | ||
| 20 | + var probArr = new Array(); // 사망 확률 | ||
| 21 | + var dataLen = 0; // 데이터 개수 | ||
| 22 | + var empty = 0; // 초기값 유뮤, 0 : 자료 있음, 1 : 자료 없음 | ||
| 23 | + var sql = ""; // 쿼리 | ||
| 24 | + var count = 0; | ||
| 25 | + const name = req.params.name; | ||
| 26 | + const birth = req.params.birth; | ||
| 27 | + | ||
| 28 | + // 이전 10분간 데이터 찾기 | ||
| 29 | + sql = "SELECT * FROM weather_info WHERE time >= DATE_FORMAT(DATE_ADD(now(), INTERVAL -20 MINUTE), '%Y-%m-%d %H:%i:%s')"; | ||
| 30 | + db.query(sql, function(err, rows, fields){ | ||
| 31 | + if(err) | ||
| 32 | + { | ||
| 33 | + console.log(err); | ||
| 34 | + } | ||
| 35 | + else | ||
| 36 | + { | ||
| 37 | + if (rows.length == 0) | ||
| 38 | + { | ||
| 39 | + empty = 1; | ||
| 40 | + } | ||
| 41 | + else | ||
| 42 | + { | ||
| 43 | + for(var i = rows.length - 1; i >= 0; i--) | ||
| 44 | + { | ||
| 45 | + probArr.unshift(rows[i].prob); | ||
| 46 | + time.unshift(rows[i].time); | ||
| 47 | + ptArr.unshift(rows[i].temperature); | ||
| 48 | + wsArr.unshift(rows[i].wind); | ||
| 49 | + rainArr.unshift(rows[i].rain); | ||
| 50 | + count = count + 1; | ||
| 51 | + | ||
| 52 | + if (count == 10){ | ||
| 53 | + break; | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + dataLen = probArr.length; | ||
| 59 | + res.render('index', { | ||
| 60 | + empty, | ||
| 61 | + time, | ||
| 62 | + ptArr, | ||
| 63 | + wsArr, | ||
| 64 | + rainArr, | ||
| 65 | + probArr, | ||
| 66 | + dataLen, | ||
| 67 | + name, | ||
| 68 | + birth | ||
| 69 | + }); | ||
| 70 | + } | ||
| 71 | + }); | ||
| 72 | +} ) | ||
| 73 | + | ||
| 74 | +router.get('/Cname/:Cname/Cbirth/:Cbirth', (req,res) => { | ||
| 11 | 75 | ||
| 12 | // 렌더링 변수 | 76 | // 렌더링 변수 |
| 13 | var time = new Array(); // 타임스탬프 | 77 | var time = new Array(); // 타임스탬프 | ... | ... |
routes/new_index.js
0 → 100644
| 1 | +var express = require('express'); | ||
| 2 | +var router = express.Router(); | ||
| 3 | +var db = require('../lib/db'); | ||
| 4 | + | ||
| 5 | +/* GET home page. */ | ||
| 6 | + | ||
| 7 | +router.post('/forecasting' , (req,res) =>{ | ||
| 8 | + res.redirect(`/name/${req.body.name}/birth/${req.body.birth}`); | ||
| 9 | +}) | ||
| 10 | +router.get('/name/:name/birth/:birth', (req,res) => { | ||
| 11 | + | ||
| 12 | + // 렌더링 변수 | ||
| 13 | + var time = new Array(); // 타임스탬프 | ||
| 14 | + var ptArr = new Array(); // 현재 온도 | ||
| 15 | + var wsArr = new Array(); // 풍속 | ||
| 16 | + var rainArr = new Array(); // 강우량 | ||
| 17 | + var probArr = new Array(); // 사망 확률 | ||
| 18 | + var dataLen = 0; // 데이터 개수 | ||
| 19 | + var empty = 0; // 초기값 유뮤, 0 : 자료 있음, 1 : 자료 없음 | ||
| 20 | + var sql = ""; // 쿼리 | ||
| 21 | + var count = 0; | ||
| 22 | + const name = req.params.name; | ||
| 23 | + const birth = req.params.birth; | ||
| 24 | + | ||
| 25 | + // 이전 10분간 데이터 찾기 | ||
| 26 | + sql = "SELECT * FROM weather_info WHERE time >= DATE_FORMAT(DATE_ADD(now(), INTERVAL -20 MINUTE), '%Y-%m-%d %H:%i:%s')"; | ||
| 27 | + db.query(sql, function(err, rows, fields){ | ||
| 28 | + if(err) | ||
| 29 | + { | ||
| 30 | + console.log(err); | ||
| 31 | + } | ||
| 32 | + else | ||
| 33 | + { | ||
| 34 | + if (rows.length == 0) | ||
| 35 | + { | ||
| 36 | + empty = 1; | ||
| 37 | + } | ||
| 38 | + else | ||
| 39 | + { | ||
| 40 | + for(var i = rows.length - 1; i >= 0; i--) | ||
| 41 | + { | ||
| 42 | + probArr.unshift(rows[i].prob); | ||
| 43 | + time.unshift(rows[i].time); | ||
| 44 | + ptArr.unshift(rows[i].temperature); | ||
| 45 | + wsArr.unshift(rows[i].wind); | ||
| 46 | + rainArr.unshift(rows[i].rain); | ||
| 47 | + count = count + 1; | ||
| 48 | + | ||
| 49 | + if (count == 10){ | ||
| 50 | + break; | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + dataLen = probArr.length; | ||
| 56 | + res.render('index', { | ||
| 57 | + empty, | ||
| 58 | + time, | ||
| 59 | + ptArr, | ||
| 60 | + wsArr, | ||
| 61 | + rainArr, | ||
| 62 | + probArr, | ||
| 63 | + dataLen, | ||
| 64 | + name, | ||
| 65 | + birth | ||
| 66 | + }); | ||
| 67 | + } | ||
| 68 | + }); | ||
| 69 | +} ) | ||
| 70 | +router.get('/', function(req, res, next) { | ||
| 71 | + res.render( 'main' ); | ||
| 72 | +}); | ||
| 73 | + | ||
| 74 | +module.exports = router; |
| 1 | <!-- <!DOCTYPE html> | 1 | <!-- <!DOCTYPE html> |
| 2 | <html lang="ko"> | 2 | <html lang="ko"> |
| 3 | - | 3 | + <head> |
| 4 | -<head> | ||
| 5 | <!-- font --> | 4 | <!-- font --> |
| 6 | <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script&subset=korean" rel="stylesheet" /> | 5 | <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script&subset=korean" rel="stylesheet" /> |
| 7 | <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&subset=korean" rel="stylesheet" /> | 6 | <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&subset=korean" rel="stylesheet" /> |
| ... | @@ -41,7 +40,7 @@ | ... | @@ -41,7 +40,7 @@ |
| 41 | 40 | ||
| 42 | <img src="images/indexWallpaper.jpg" alt="" style="z-index:-1; min-width: 100%; min-height: 100%"width="50%" height="100%"> | 41 | <img src="images/indexWallpaper.jpg" alt="" style="z-index:-1; min-width: 100%; min-height: 100%"width="50%" height="100%"> |
| 43 | 42 | ||
| 44 | - <div id="banner"> | 43 | + <div id="banner" ani_type="fade"> |
| 45 | <div id="container1" style="width:1260px; height: 400px; margin: 0 auto;"></div> | 44 | <div id="container1" style="width:1260px; height: 400px; margin: 0 auto;"></div> |
| 46 | 45 | ||
| 47 | <div style="width:1275px; margin:0 auto;"> | 46 | <div style="width:1275px; margin:0 auto;"> | ... | ... |
| ... | @@ -79,7 +79,7 @@ | ... | @@ -79,7 +79,7 @@ |
| 79 | <h1 style="font-size:90px;">당신이 지금 죽을 확률은?</h1> | 79 | <h1 style="font-size:90px;">당신이 지금 죽을 확률은?</h1> |
| 80 | </div> | 80 | </div> |
| 81 | <br><br><br> | 81 | <br><br><br> |
| 82 | - <div style="width:100%; text-align: center;"> | 82 | + <div style="width:100%; text-align: center;" > |
| 83 | <form action="/starting" method="post"> | 83 | <form action="/starting" method="post"> |
| 84 | <div class="form-inline"> | 84 | <div class="form-inline"> |
| 85 | <label>이름</label> | 85 | <label>이름</label> |
| ... | @@ -88,13 +88,20 @@ | ... | @@ -88,13 +88,20 @@ |
| 88 | <label>생년월일</label> | 88 | <label>생년월일</label> |
| 89 | <input type="text" name="birth" class="form-control" placeholder="971009" style="width:200px;" minlength="6" maxlength="6"> | 89 | <input type="text" name="birth" class="form-control" placeholder="971009" style="width:200px;" minlength="6" maxlength="6"> |
| 90 | <br><br><br> | 90 | <br><br><br> |
| 91 | - <input type="submit" value="운명보기" class="btn btn-default" style="font-family: 'Yeon Sung', cursive; width:100px;font-weight: bold; font-size: 18px; background-color: white;"> | 91 | + <input type="submit" value="운명보기" class="btn btn-danger" style="font-family: 'Yeon Sung', cursive; width:100px;font-weight: bold; font-size: 18px; background-color: white;"> |
| 92 | + </div> | ||
| 93 | + | ||
| 94 | + </form> | ||
| 95 | + <form action="/forecasting" method="post"> | ||
| 96 | + <div class="/forecasting" method="post"> | ||
| 97 | + <input type="submit" value="미래확인" class="btn btn-default" style="..."> | ||
| 92 | </div> | 98 | </div> |
| 93 | </form> | 99 | </form> |
| 94 | </div> | 100 | </div> |
| 95 | 101 | ||
| 96 | </div> | 102 | </div> |
| 97 | 103 | ||
| 104 | + | ||
| 98 | <div id="footer">오픈소스SW개발 곽태식 이승규 강병호</div> | 105 | <div id="footer">오픈소스SW개발 곽태식 이승규 강병호</div> |
| 99 | </body> | 106 | </body> |
| 100 | 107 | ... | ... |
views/new_index.ejs
0 → 100644
| 1 | +<head> | ||
| 2 | + <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script&subset=korean" rel="stylesheet" /> | ||
| 3 | + <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&subset=korean" rel="stylesheet" /> | ||
| 4 | + | ||
| 5 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| 6 | + <meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
| 7 | + <title>당신이 지금 죽을 확률은?</title> | ||
| 8 | + <style type="text/css"> | ||
| 9 | + html { | ||
| 10 | + margin: 0; | ||
| 11 | + padding: 0; | ||
| 12 | + } | ||
| 13 | + body { | ||
| 14 | + margin: 0; | ||
| 15 | + padding: 0; | ||
| 16 | + | ||
| 17 | + /* background: linear-gradient( to bottom, #65799B, rgb(38, 14, 41) ); */ | ||
| 18 | + /* background-color:#65799B; */ | ||
| 19 | + /* background-image: url("2.jpg"); | ||
| 20 | + background-repeat: no-repeat; | ||
| 21 | + background-size: cover; */ | ||
| 22 | + } | ||
| 23 | + #banner { | ||
| 24 | + position: absolute; | ||
| 25 | + top: 0; | ||
| 26 | + width: 100%; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + </style> | ||
| 30 | +</head> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment