이의준

response로부터 table 구현 및 작동테스트서버 임시파일 추가

body
{
background-color: black;
color: white;
background-color: white;
color: black;
}
p, h2{
position: relative;
left: 20px;
}
\ No newline at end of file
......
var url = require('url');
var request = require('request');
var qs = require('querystring');
var fs = require('fs');
const { METHODS } = require('http');
function makeTimetable(resFromServer){ // Timetable 표를 만드는 함수
var busArrivalTime =
`<table border="3" width="400">
<th> Index</th>
<th> 출발 예정시간</th>
<th> 남은 시간</th>
`;
var lenRes = resFromServer.length;
for (index = 0; index < lenRes; index+=2){
let m = resFromServer[index];
let M = resFromServer[index+1];
busArrivalTime += `
<tr align="center">
<td>${(index+2)/2} 번째 버스</td>
<td>${m} ~ ${M}</td>
</tr>`;
}
busArrivalTime += `
</table>`;
return busArrivalTime;
};
function makeTTWebpage(busNum, busArrivalTime){ // Timetable 표를 바탕으로 TT 페이지를 만드는 함수
var templateTimeTable =
`
<!doctype html>
<html>
<head>
<title>Time Table</title>
<meta charset="utf-8">
<style type="text/css">
a { text-decoration:none }
</style>
</head>
<body>
<h1><a href="/"><p style="text-align:center;">BTT</p></a></h1>
<br> <div style="padding:0 0 0 20px;">
<h2>${busNum} BUS Time Table</h2>
</div>
<div style="padding:0 0 0 20px;">
${busArrivalTime}
</div>
<br>
<br>
<p> <div style="padding:0 0 0 20px;">
버스의 평균 배차시간을 기준으로 최소 출발시간과 최대 출발시간을 제공합니다.
</div> </p>
<div style="padding:0 0 0 20px;">
<script>
var date = new Date();
var yyyy = date.getFullYear();
var mm = date.getMonth() + 1;
var dd = date.getDate();
var hh = date.getHours();
document.write(yyyy+"년 "+mm+"월 "+dd+"일 ");
document.write(hh+"시 "+mm+"분 기준");
</script>
</div>
</body>
</html>
`;
return templateTimeTable;
};
module.exports = function(app)
{
app.get('/', function (req, res) {
res.render('Index.html');
});
app.get('/timetable', function (req, res){ // bus list의 특정 버스를 클릭하면, server에 요청
var _url = req.url;
var queryData = url.parse(_url, true).query;
var busNum = queryData.busNum;
// 서버로부터 응답받는 배열의 길이는 항상 짝수여야 한다. (버스 1대당 출발예정 최소 + 최대시간 1개씩)
var resFromServer = ['1:30', '1:45', '2:00', '2:15', '2:30', '2:45'];
var busArrivalTime = makeTimetable(resFromServer);
// server 완성되면 해당 IP로 request
// request.post(
// {
// url: 'http://34.206.171.225:23023/reqBusInfo',
// body: {
// 'busNum': busNum,
// 'testVariable': 'test'
// },
// json: true
// }, function (error, response, body){
// response.json(body); // 이 부분을 resFromServer.push(body) 이런식으로 하면?
// }
// );
var templateTimeTable = makeTTWebpage(busNum, busArrivalTime);
res.send(templateTimeTable);
});
}
// 목록 출력 기능 구현
// var busArrivalTime = `<ul style="list-style-type:circle">`;
// for (index = 0; index < lenRes; index++){
// let t = resFromServer[index];
// busArrivalTime += `
// <li>${t}</li>`;
// }
// busArrivalTime += `
// </ul>`;
// console.log(busArrivalTime);
var express = require('express');
var app = express();
var router = require('./router/test_main')(app); // router모듈인 main.js를 불러와서 app에 전달
//__dirname : 현재 실행중인 폴더 경로
app.set('views', __dirname + '/views'); //서버가 읽을 수 있도록 HTML 의 위치를 정의
app.set('view engine', 'ejs'); //서버가 HTML 렌더링을 할 때, EJS 엔진을 사용하도록 설정
app.engine('html', require('ejs').renderFile); //서버가 HTML 렌더링을 할 때, EJS 엔진을 사용하도록 설정
var server = app.listen(23023, function () {
var host = server.address().address
var port = server.address().port
console.log("app listening at http://%s:%s", host, port)
})
app.use(express.static(__dirname + '/public'));
......@@ -19,7 +19,7 @@
<br><br>
<h2> 버스별 시간표 조회</h2>
<script>
<div style="padding:0 0 0 20px;"><script>
var date = new Date();
var yyyy = date.getFullYear();
var mm = date.getMonth() + 1;
......@@ -28,7 +28,7 @@
document.write(yyyy+"년 "+mm+"월 "+dd+"일 오늘 운행하는 버스들 ");
document.write("( "+hh+"시 "+mm+"분 기준 )");
</script>
</script> </div>
<ul>
<li><a href="http://localhost:23023/timetable?busNum=5100">5100</a></li>
......