Showing
4 changed files
with
134 additions
and
1 deletions
Memo.txt
0 → 100644
| 1 | -// aws 인스턴스 - chatbot /home/ubuntu/server/server.js 파일임. | 1 | +// aws 인스턴스 - chatbot /home/ubuntu/server_termp/server.js 파일임. |
| 2 | +// 작동법 : form.html 파일을 chrome에서 open -> busNumber 입력 후 submit -> http://34.206.171.225:23023/server로 리다이렉트 | ||
| 3 | +// server 컴퓨터인 chatbot 인스턴스에서는 {busNumber : 0000} 와 같은 데이터를 받을 수 있음. | ||
| 4 | +// express routing은 아직 미구현 | ||
| 2 | 5 | ||
| 3 | var http = require('http'); | 6 | var http = require('http'); |
| 4 | var fs = require('fs'); | 7 | var fs = require('fs'); |
| 5 | var url = require('url'); | 8 | var url = require('url'); |
| 6 | var qs = require('querystring'); | 9 | var qs = require('querystring'); |
| 10 | +var express = require('express'); | ||
| 11 | +var app_express = express(); | ||
| 7 | 12 | ||
| 8 | var app = http.createServer(function(request,response){ | 13 | var app = http.createServer(function(request,response){ |
| 9 | 14 | ||
| ... | @@ -26,6 +31,7 @@ var app = http.createServer(function(request,response){ | ... | @@ -26,6 +31,7 @@ var app = http.createServer(function(request,response){ |
| 26 | var post = qs.parse(body); | 31 | var post = qs.parse(body); |
| 27 | // end 이벤트가 발생하면(end는 한번만 발생한다) 3번에서 저장해둔 body 를 querystring 으로 객체화 | 32 | // end 이벤트가 발생하면(end는 한번만 발생한다) 3번에서 저장해둔 body 를 querystring 으로 객체화 |
| 28 | console.log(post); | 33 | console.log(post); |
| 34 | + console.log(body); | ||
| 29 | // 객체화된 데이터를 로그로 출력 | 35 | // 객체화된 데이터를 로그로 출력 |
| 30 | response.writeHead(200, {'Content-Type':'text/html'}); | 36 | response.writeHead(200, {'Content-Type':'text/html'}); |
| 31 | response.end('bus Number = ' + post.busNumber); | 37 | response.end('bus Number = ' + post.busNumber); |
| ... | @@ -37,5 +43,9 @@ var app = http.createServer(function(request,response){ | ... | @@ -37,5 +43,9 @@ var app = http.createServer(function(request,response){ |
| 37 | } | 43 | } |
| 38 | }); | 44 | }); |
| 39 | 45 | ||
| 46 | +app_express.get("/test1234", (req, res) => { | ||
| 47 | + res.send('Hello world!'); | ||
| 48 | +}) | ||
| 49 | + | ||
| 40 | app.listen(23023); | 50 | app.listen(23023); |
| 41 | console.log("Listening on 23023"); | 51 | console.log("Listening on 23023"); |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
View/Index.html
0 → 100644
| 1 | +<!doctype html> | ||
| 2 | +<html> | ||
| 3 | +<head> | ||
| 4 | + <title>BUS TT</title> | ||
| 5 | + <meta charset="utf-8"> | ||
| 6 | + <style type="text/css"> | ||
| 7 | + a { text-decoration:none } /* 하이퍼링크 밑줄 미적용 | ||
| 8 | + a { color:red; text-decoration:none} : 색깔 변화없음 | ||
| 9 | + */ | ||
| 10 | + </style> | ||
| 11 | +</head> | ||
| 12 | + | ||
| 13 | +<body> | ||
| 14 | + <h1><p style="text-align:center;">BTT</p></h1> | ||
| 15 | + <br> | ||
| 16 | + <h2> 사색의 광장 Bus Time Table 조회 서비스에 오신 것을 환영합니다.</h2> | ||
| 17 | + <p> 이곳에는 사색의 광장에서 출발하는 모든 버스의 정보가 있습니다.</p> | ||
| 18 | + <br><br> | ||
| 19 | + <h2> 버스별 시간표 조회</h2> | ||
| 20 | + | ||
| 21 | + <script> | ||
| 22 | + var date = new Date(); | ||
| 23 | + var yyyy = date.getFullYear(); | ||
| 24 | + var mm = date.getMonth() + 1; | ||
| 25 | + var dd = date.getDate(); | ||
| 26 | + var hh = date.getHours(); | ||
| 27 | + | ||
| 28 | + document.write(yyyy+"년 "+mm+"월 "+dd+"일 오늘 운행하는 버스들 "); | ||
| 29 | + document.write("( "+hh+"시 "+mm+"분 기준 )"); | ||
| 30 | + </script> | ||
| 31 | + | ||
| 32 | + <ul> | ||
| 33 | + <li><a href="http://localhost:23023/?busNum=5100">5100</a></li> | ||
| 34 | + <li><a href="http://localhost:23023/?busNum=M5107">M5107</a></li> | ||
| 35 | + <li><a href="http://localhost:23023/?busNum=9">9</a></li> | ||
| 36 | + <li><a href="http://localhost:23023/?busNum=7000">7000</a></li> | ||
| 37 | + <li>etc</li> | ||
| 38 | + </ul> | ||
| 39 | + <br> | ||
| 40 | + <p>설명</p> | ||
| 41 | + | ||
| 42 | + | ||
| 43 | +</body> | ||
| 44 | +</html> |
View/base.js
0 → 100644
| 1 | +var http = require('http'); | ||
| 2 | +var fs = require('fs'); | ||
| 3 | +var url = require('url'); | ||
| 4 | +var request = require('request'); | ||
| 5 | + | ||
| 6 | +function templateTimeTable(busNum, req){ | ||
| 7 | + return ` | ||
| 8 | + <!doctype html> | ||
| 9 | + <html> | ||
| 10 | + <head> | ||
| 11 | + <title>Time Table</title> | ||
| 12 | + <meta charset="utf-8"> | ||
| 13 | + <style type="text/css"> | ||
| 14 | + a { text-decoration:none } | ||
| 15 | + </style> | ||
| 16 | + </head> | ||
| 17 | + | ||
| 18 | + <body> | ||
| 19 | + <h1><a href="Index.html"><p style="text-align:center;">BTT</p></a></h1> | ||
| 20 | + <br> | ||
| 21 | + <h2>${busNum} BUS Time Table</h2> | ||
| 22 | + <br> | ||
| 23 | + ${req} | ||
| 24 | + </body> | ||
| 25 | + </html> | ||
| 26 | + `; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +function req_post(busNum){ | ||
| 30 | + request.post( | ||
| 31 | + { | ||
| 32 | + url: 'http://34.206.171.225:23023/server', | ||
| 33 | + body: { | ||
| 34 | + 'busNum': busNum, | ||
| 35 | + 'testVariable': 'test' | ||
| 36 | + }, | ||
| 37 | + json: true | ||
| 38 | + } | ||
| 39 | + ); | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +function req_get(){ | ||
| 43 | + request.get( | ||
| 44 | + { | ||
| 45 | + url: 'http://34.206.171.225:23023/test2134', | ||
| 46 | + } | ||
| 47 | + ); | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +var app = http.createServer(function(request,response){ | ||
| 51 | + var _url = request.url; | ||
| 52 | + var queryData = url.parse(_url, true).query; | ||
| 53 | + var busNum = queryData.busNum; // function의 parameter로 queryData.busNum은 안되서 새로 변수를 만듦 | ||
| 54 | + if(_url == '/'){ | ||
| 55 | + _url = '/Index.html'; | ||
| 56 | + } | ||
| 57 | + if(_url == '/favicon.ico'){ | ||
| 58 | + return response.writeHead(404); | ||
| 59 | + } | ||
| 60 | + response.writeHead(200); | ||
| 61 | + console.log(queryData.busNum); | ||
| 62 | + | ||
| 63 | + if (busNum != null){ // 버스번호를 요청했을때 타임테이블 페이지로 전환 | ||
| 64 | + req_post(busNum); | ||
| 65 | + var resFromServer = req_get(); | ||
| 66 | + console.log(req_get()); | ||
| 67 | + //var resFromServer = '<p> Response from API server ... </p>'; | ||
| 68 | + var timetableHTML = templateTimeTable(busNum, resFromServer); | ||
| 69 | + response.end(timetableHTML); | ||
| 70 | + } | ||
| 71 | + else{ // 아니라면, url 따라감 | ||
| 72 | + response.end(fs.readFileSync(__dirname + _url)); | ||
| 73 | + } | ||
| 74 | +}); | ||
| 75 | +app.listen(23023); | ||
| 76 | +console.log("Listening on 23023"); | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment