신기성

1페이지 사이트로 변경

1 +
1 var readline=require('readline');//입력받기 위한 모듈 2 var readline=require('readline');//입력받기 위한 모듈
2 var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의 3 var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의
3 var rtfw1="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url 4 var rtfw1="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url
......
1 -//http연동 1 +//Site
2 +var http = require('http');
3 +var fs = require('fs');
4 +var jsdom = require('jsdom');
5 +//var $ = require('jquery');
6 +var path=require('path');
7 +//Site end
2 var express=require('express'); 8 var express=require('express');
3 var app=express(); 9 var app=express();
4 var router=require('./router/main')(app); 10 var router=require('./router/main')(app);
11 +var bodyParser=require('body-parser');
12 +var querystring=require('querystring');
13 +app.use(bodyParser.urlencoded({extended: false}));
14 +app.use(bodyParser.json());
15 +
16 +//Site
17 +app.use(express.static('public'));
18 +app.use('/node_modules', express.static(path.join(__dirname,'/node_modules')));
19 +
20 +app.get('/', function(req,res){
21 + fs.readFile('index.ejs',function(err,data){
22 + res.writeHead(200,{'Content-Type':'text/html'});
23 + res.end(data);
24 + });
25 +});
26 +
27 +app.get('/build/create', function(req,res,next){
28 + fs.readFile('index.ejs',function(err,data){
29 + res.writeHead(200,{'Content-Type':'text/html'});
30 + res.end(data);
31 + });
32 +});
33 +
34 +app.get('/imgs',function(req,res){
35 + fs.readFile('logoIMG.jpg',function(err,data){
36 + res.writeHead(200,{'Content-Type':'text/html'});
37 + res.end(data);
38 + });
39 +});
40 +//Site end
5 41
6 app.set('views', __dirname + '/views'); 42 app.set('views', __dirname + '/views');
7 app.set('view engine', 'ejs'); 43 app.set('view engine', 'ejs');
......
1 +/*
1 var fs = require('fs');//파일 시스템 2 var fs = require('fs');//파일 시스템
2 var readline=require('readline')//readline 모듈 3 var readline=require('readline')//readline 모듈
3 var file = 'target.txt';//파일은 타겟.텍스트이다. 4 var file = 'target.txt';//파일은 타겟.텍스트이다.
...@@ -18,3 +19,4 @@ fs.open(file, 'r+', function(err,fd){//파일을 읽쓰 모드로 열고 없으 ...@@ -18,3 +19,4 @@ fs.open(file, 'r+', function(err,fd){//파일을 읽쓰 모드로 열고 없으
18 }) 19 })
19 }) 20 })
20 }) 21 })
22 +*/
......
1 +[object Object]
...\ No newline at end of file ...\ No newline at end of file

136 KB

This diff is collapsed. Click to expand it.
1 module.exports = function(app,fs) 1 module.exports = function(app,fs)
2 { 2 {
3 app.get('/',function(req,res){ 3 app.get('/',function(req,res){
4 - var test='test'; 4 + var test='333333333333';
5 -res.render('example.ejs',{data:test}); 5 +res.render('index',{length: test});
6 +
7 +
8 +});
9 +
10 +app.get('/build/create',function(req,res,next){
11 +
6 12
7 var readline=require('readline');//입력받기 위한 모듈 13 var readline=require('readline');//입력받기 위한 모듈
8 var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의 14 var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의
...@@ -48,8 +54,13 @@ res.render('example.ejs',{data:test}); ...@@ -48,8 +54,13 @@ res.render('example.ejs',{data:test});
48 var enemyrace;//상대 종족 54 var enemyrace;//상대 종족
49 var recommend;//추천빌드(운영/타이밍/올인) 55 var recommend;//추천빌드(운영/타이밍/올인)
50 // 56 //
57 +//var answer=req.getParameter("name");
58 +var answer=req.query.name;
59 +answer=answer.toString();
60 +console.log("query"+answer);
61 +
51 62
52 - r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer){//question메소드에서 callback함수 생성 63 +// r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer){//question메소드에서 callback함수 생성
53 //question은 에러 제어 만들면 안된다. 64 //question은 에러 제어 만들면 안된다.
54 console.log("r.question processing");//callback함수란 이벤트가 왔을 때 실행되는 함수이다. answer에 검색을 원하는 아이디가 담겨있다. 65 console.log("r.question processing");//callback함수란 이벤트가 왔을 때 실행되는 함수이다. answer에 검색을 원하는 아이디가 담겨있다.
55 rtfw1=rtfw1+answer;//검색 url 구성 66 rtfw1=rtfw1+answer;//검색 url 구성
...@@ -58,6 +69,7 @@ res.render('example.ejs',{data:test}); ...@@ -58,6 +69,7 @@ res.render('example.ejs',{data:test});
58 request(rtfw1,(error,response,body)=>{//rtfw url 불러오기 request 1 69 request(rtfw1,(error,response,body)=>{//rtfw url 불러오기 request 1
59 if(error){throw error};//에러처리 70 if(error){throw error};//에러처리
60 console.log("request 1 processing"); 71 console.log("request 1 processing");
72 + console.log(body);
61 let $ = cheerio.load(body);//rtfw가 body이다. $로 jquery방식으로 html탐색 73 let $ = cheerio.load(body);//rtfw가 body이다. $로 jquery방식으로 html탐색
62 $('ul').find('a').each(function(index,elem){//ul 태그 아래 a태그를 찾는다. 74 $('ul').find('a').each(function(index,elem){//ul 태그 아래 a태그를 찾는다.
63 username=$(this).find('.name').text().trim();//name클래스를 찾아 공백빼고 텍스트화 75 username=$(this).find('.name').text().trim();//name클래스를 찾아 공백빼고 텍스트화
...@@ -208,7 +220,7 @@ res.render('example.ejs',{data:test}); ...@@ -208,7 +220,7 @@ res.render('example.ejs',{data:test});
208 console.log("상대의 주 종족은 '"+primary_race+"'입니다."); 220 console.log("상대의 주 종족은 '"+primary_race+"'입니다.");
209 console.log("상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다."); 221 console.log("상대의 이번 시즌 전체 승률은 '"+win_rate+"'입니다.");
210 // 222 //
211 - 223 +res.render('index',{length: momentum});
212 //build recommend command 224 //build recommend command
213 225
214 // 226 //
...@@ -226,8 +238,8 @@ res.render('example.ejs',{data:test}); ...@@ -226,8 +238,8 @@ res.render('example.ejs',{data:test});
226 238
227 console.log('r.question done'); 239 console.log('r.question done');
228 //console.log(terran_level); 240 //console.log(terran_level);
229 - r.close()//반드시 close를 해줘야 한다.사용이 다 끝난 후에. 241 +// r.close()//반드시 close를 해줘야 한다.사용이 다 끝난 후에.
230 - });//r.question 끝 242 +// });//r.question 끝
231 243
232 244
233 245
......
1 +<!DOCTYPE html>
2 +<html lang="ko-kr">
3 +<head>
4 + <meta charset="utf-8">
5 + <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen">
6 + <link href="/static/core/style.css" rel="stylesheet" media="screen">
7 + <script type="text/javascript" src="node_modules/jquery/dist/jquery.js"></script>
8 + <script type="text/javascript">
9 + $().ready(function(){
10 + alert("StarCraft2 Build Recommendation Project");
11 + });
12 + </script>
13 + <script async="" src="//www.google-analytics.com/analytics.js"></script>
14 + <script type="text/javascript" async="" src="//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"></script>
15 + <title>StarCraft 2 Build Recommendation Project</title>
16 +
17 +<body>
18 +
19 +
20 +
21 +
22 +<p stype="fond-family:verdana;">StarCraft 2 Build Recommendation Project</p>
23 +
24 +<br>
25 +<br>
26 +<img src="/imgs" alt="StarCraft2 LOGO image">
27 +<div class="col-md-3">
28 + <form action="/build/create" id="searchform" action method="get">
29 + <div id="div_id_name" class="form-group">
30 + <label for="id_name" class="control-label ">
31 + 상대 아이디
32 + </label>
33 + <div class="controls">
34 + <input class="textinput textInput form-control" id="id_name" maxlength="20" name="name" type="text">
35 + </div>
36 + </div>
37 +
38 +
39 +
40 +<input value="빌드 추천!" type="submit"/>
41 +</form>
42 +
43 +<%= length%>
44 +
45 +
46 +<a class="btn btn-primary" href="/build/create/">빌드</a>
47 +<br>
48 +<br>
49 +<a href="https://starcraft2.com/ko-kr/game">Official Site</a>
50 +
51 +</body>
52 +</html>