곽태식

예보페이지 추가

...@@ -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(); // 타임스탬프
......
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&amp;subset=korean" rel="stylesheet" /> 5 <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script&amp;subset=korean" rel="stylesheet" />
7 <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&amp;subset=korean" rel="stylesheet" /> 6 <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&amp;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
......
1 +<head>
2 + <link href="https://fonts.googleapis.com/css?family=Nanum+Brush+Script&amp;subset=korean" rel="stylesheet" />
3 + <link href="https://fonts.googleapis.com/css?family=Yeon+Sung&amp;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