test_main.js 3.63 KB
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);