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