이의준

request.post모듈을 이용해 server에 데이터 전송(get 미구현)

앞으로 할일.
req로 보낼 데이터 형식 지정
서버에서 받아와서 어떻게 게시할지 정하기
\ No newline at end of file
// aws 인스턴스 - chatbot /home/ubuntu/server/server.js 파일임.
// aws 인스턴스 - chatbot /home/ubuntu/server_termp/server.js 파일임.
// 작동법 : form.html 파일을 chrome에서 open -> busNumber 입력 후 submit -> http://34.206.171.225:23023/server로 리다이렉트
// server 컴퓨터인 chatbot 인스턴스에서는 {busNumber : 0000} 와 같은 데이터를 받을 수 있음.
// express routing은 아직 미구현
var http = require('http');
var fs = require('fs');
var url = require('url');
var qs = require('querystring');
var express = require('express');
var app_express = express();
var app = http.createServer(function(request,response){
......@@ -26,6 +31,7 @@ var app = http.createServer(function(request,response){
var post = qs.parse(body);
// end 이벤트가 발생하면(end는 한번만 발생한다) 3번에서 저장해둔 body 를 querystring 으로 객체화
console.log(post);
console.log(body);
// 객체화된 데이터를 로그로 출력
response.writeHead(200, {'Content-Type':'text/html'});
response.end('bus Number = ' + post.busNumber);
......@@ -37,5 +43,9 @@ var app = http.createServer(function(request,response){
}
});
app_express.get("/test1234", (req, res) => {
res.send('Hello world!');
})
app.listen(23023);
console.log("Listening on 23023");
\ No newline at end of file
......
<!doctype html>
<html>
<head>
<title>BUS TT</title>
<meta charset="utf-8">
<style type="text/css">
a { text-decoration:none } /* 하이퍼링크 밑줄 미적용
a { color:red; text-decoration:none} : 색깔 변화없음
*/
</style>
</head>
<body>
<h1><p style="text-align:center;">BTT</p></h1>
<br>
<h2> 사색의 광장 Bus Time Table 조회 서비스에 오신 것을 환영합니다.</h2>
<p> 이곳에는 사색의 광장에서 출발하는 모든 버스의 정보가 있습니다.</p>
<br><br>
<h2> 버스별 시간표 조회</h2>
<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>
<ul>
<li><a href="http://localhost:23023/?busNum=5100">5100</a></li>
<li><a href="http://localhost:23023/?busNum=M5107">M5107</a></li>
<li><a href="http://localhost:23023/?busNum=9">9</a></li>
<li><a href="http://localhost:23023/?busNum=7000">7000</a></li>
<li>etc</li>
</ul>
<br>
<p>설명</p>
</body>
</html>
var http = require('http');
var fs = require('fs');
var url = require('url');
var request = require('request');
function templateTimeTable(busNum, req){
return `
<!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="Index.html"><p style="text-align:center;">BTT</p></a></h1>
<br>
<h2>${busNum} BUS Time Table</h2>
<br>
${req}
</body>
</html>
`;
}
function req_post(busNum){
request.post(
{
url: 'http://34.206.171.225:23023/server',
body: {
'busNum': busNum,
'testVariable': 'test'
},
json: true
}
);
}
function req_get(){
request.get(
{
url: 'http://34.206.171.225:23023/test2134',
}
);
}
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
var busNum = queryData.busNum; // function의 parameter로 queryData.busNum은 안되서 새로 변수를 만듦
if(_url == '/'){
_url = '/Index.html';
}
if(_url == '/favicon.ico'){
return response.writeHead(404);
}
response.writeHead(200);
console.log(queryData.busNum);
if (busNum != null){ // 버스번호를 요청했을때 타임테이블 페이지로 전환
req_post(busNum);
var resFromServer = req_get();
console.log(req_get());
//var resFromServer = '<p> Response from API server ... </p>';
var timetableHTML = templateTimeTable(busNum, resFromServer);
response.end(timetableHTML);
}
else{ // 아니라면, url 따라감
response.end(fs.readFileSync(__dirname + _url));
}
});
app.listen(23023);
console.log("Listening on 23023");
\ No newline at end of file