Showing
4 changed files
with
145 additions
and
4 deletions
router/test_main.js
0 → 100644
1 | +var url = require('url'); | ||
2 | +var request = require('request'); | ||
3 | +var qs = require('querystring'); | ||
4 | +var fs = require('fs'); | ||
5 | +const { METHODS } = require('http'); | ||
6 | + | ||
7 | +function makeTimetable(resFromServer){ // Timetable 표를 만드는 함수 | ||
8 | + var busArrivalTime = | ||
9 | +`<table border="3" width="400"> | ||
10 | + <th> Index</th> | ||
11 | + <th> 출발 예정시간</th> | ||
12 | + <th> 남은 시간</th> | ||
13 | +`; | ||
14 | + var lenRes = resFromServer.length; | ||
15 | + | ||
16 | + for (index = 0; index < lenRes; index+=2){ | ||
17 | + let m = resFromServer[index]; | ||
18 | + let M = resFromServer[index+1]; | ||
19 | + busArrivalTime += ` | ||
20 | + <tr align="center"> | ||
21 | + <td>${(index+2)/2} 번째 버스</td> | ||
22 | + <td>${m} ~ ${M}</td> | ||
23 | + </tr>`; | ||
24 | + } | ||
25 | + busArrivalTime += ` | ||
26 | +</table>`; | ||
27 | + | ||
28 | + return busArrivalTime; | ||
29 | +}; | ||
30 | + | ||
31 | +function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 TT 페이지를 만드는 함수 | ||
32 | + var templateTimeTable = | ||
33 | + ` | ||
34 | + <!doctype html> | ||
35 | + <html> | ||
36 | + <head> | ||
37 | + <title>Time Table</title> | ||
38 | + <meta charset="utf-8"> | ||
39 | + <style type="text/css"> | ||
40 | + a { text-decoration:none } | ||
41 | + </style> | ||
42 | + </head> | ||
43 | + | ||
44 | + <body> | ||
45 | + <h1><a href="/"><p style="text-align:center;">BTT</p></a></h1> | ||
46 | + <br> <div style="padding:0 0 0 20px;"> | ||
47 | + <h2>${busNum} BUS Time Table</h2> | ||
48 | + </div> | ||
49 | + <div style="padding:0 0 0 20px;"> | ||
50 | + ${busArrivalTime} | ||
51 | + </div> | ||
52 | + <br> | ||
53 | + <br> | ||
54 | + <p> <div style="padding:0 0 0 20px;"> | ||
55 | + 버스의 평균 배차시간을 기준으로 최소 출발시간과 최대 출발시간을 제공합니다. | ||
56 | + </div> </p> | ||
57 | + <div style="padding:0 0 0 20px;"> | ||
58 | + <script> | ||
59 | + var date = new Date(); | ||
60 | + var yyyy = date.getFullYear(); | ||
61 | + var mm = date.getMonth() + 1; | ||
62 | + var dd = date.getDate(); | ||
63 | + var hh = date.getHours(); | ||
64 | + | ||
65 | + document.write(yyyy+"년 "+mm+"월 "+dd+"일 "); | ||
66 | + document.write(hh+"시 "+mm+"분 기준"); | ||
67 | + </script> | ||
68 | + </div> | ||
69 | + </body> | ||
70 | + </html> | ||
71 | + `; | ||
72 | + | ||
73 | + return templateTimeTable; | ||
74 | +}; | ||
75 | + | ||
76 | +module.exports = function(app) | ||
77 | +{ | ||
78 | + app.get('/', function (req, res) { | ||
79 | + res.render('Index.html'); | ||
80 | + }); | ||
81 | + | ||
82 | + app.get('/timetable', function (req, res){ // bus list의 특정 버스를 클릭하면, server에 요청 | ||
83 | + var _url = req.url; | ||
84 | + var queryData = url.parse(_url, true).query; | ||
85 | + var busNum = queryData.busNum; | ||
86 | + | ||
87 | + // 서버로부터 응답받는 배열의 길이는 항상 짝수여야 한다. (버스 1대당 출발예정 최소 + 최대시간 1개씩) | ||
88 | + var resFromServer = ['1:30', '1:45', '2:00', '2:15', '2:30', '2:45']; | ||
89 | + var busArrivalTime = makeTimetable(resFromServer); | ||
90 | + | ||
91 | + // server 완성되면 해당 IP로 request | ||
92 | + // request.post( | ||
93 | + // { | ||
94 | + // url: 'http://34.206.171.225:23023/reqBusInfo', | ||
95 | + // body: { | ||
96 | + // 'busNum': busNum, | ||
97 | + // 'testVariable': 'test' | ||
98 | + // }, | ||
99 | + // json: true | ||
100 | + // }, function (error, response, body){ | ||
101 | + // response.json(body); // 이 부분을 resFromServer.push(body) 이런식으로 하면? | ||
102 | + // } | ||
103 | + // ); | ||
104 | + | ||
105 | + var templateTimeTable = makeTTWebpage(busNum, busArrivalTime); | ||
106 | + res.send(templateTimeTable); | ||
107 | + }); | ||
108 | +} | ||
109 | + | ||
110 | +// 목록 출력 기능 구현 | ||
111 | +// var busArrivalTime = `<ul style="list-style-type:circle">`; | ||
112 | + | ||
113 | +// for (index = 0; index < lenRes; index++){ | ||
114 | +// let t = resFromServer[index]; | ||
115 | +// busArrivalTime += ` | ||
116 | +// <li>${t}</li>`; | ||
117 | +// } | ||
118 | +// busArrivalTime += ` | ||
119 | +// </ul>`; | ||
120 | +// console.log(busArrivalTime); |
test_server.js
0 → 100644
1 | +var express = require('express'); | ||
2 | +var app = express(); | ||
3 | +var router = require('./router/test_main')(app); // router모듈인 main.js를 불러와서 app에 전달 | ||
4 | + | ||
5 | +//__dirname : 현재 실행중인 폴더 경로 | ||
6 | +app.set('views', __dirname + '/views'); //서버가 읽을 수 있도록 HTML 의 위치를 정의 | ||
7 | +app.set('view engine', 'ejs'); //서버가 HTML 렌더링을 할 때, EJS 엔진을 사용하도록 설정 | ||
8 | +app.engine('html', require('ejs').renderFile); //서버가 HTML 렌더링을 할 때, EJS 엔진을 사용하도록 설정 | ||
9 | + | ||
10 | +var server = app.listen(23023, function () { | ||
11 | + var host = server.address().address | ||
12 | + var port = server.address().port | ||
13 | + console.log("app listening at http://%s:%s", host, port) | ||
14 | +}) | ||
15 | + | ||
16 | +app.use(express.static(__dirname + '/public')); |
... | @@ -19,7 +19,7 @@ | ... | @@ -19,7 +19,7 @@ |
19 | <br><br> | 19 | <br><br> |
20 | <h2> 버스별 시간표 조회</h2> | 20 | <h2> 버스별 시간표 조회</h2> |
21 | 21 | ||
22 | - <script> | 22 | + <div style="padding:0 0 0 20px;"><script> |
23 | var date = new Date(); | 23 | var date = new Date(); |
24 | var yyyy = date.getFullYear(); | 24 | var yyyy = date.getFullYear(); |
25 | var mm = date.getMonth() + 1; | 25 | var mm = date.getMonth() + 1; |
... | @@ -28,7 +28,7 @@ | ... | @@ -28,7 +28,7 @@ |
28 | 28 | ||
29 | document.write(yyyy+"년 "+mm+"월 "+dd+"일 오늘 운행하는 버스들 "); | 29 | document.write(yyyy+"년 "+mm+"월 "+dd+"일 오늘 운행하는 버스들 "); |
30 | document.write("( "+hh+"시 "+mm+"분 기준 )"); | 30 | document.write("( "+hh+"시 "+mm+"분 기준 )"); |
31 | - </script> | 31 | + </script> </div> |
32 | 32 | ||
33 | <ul> | 33 | <ul> |
34 | <li><a href="http://localhost:23023/timetable?busNum=5100">5100</a></li> | 34 | <li><a href="http://localhost:23023/timetable?busNum=5100">5100</a></li> | ... | ... |
-
Please register or login to post a comment