Showing
8 changed files
with
111 additions
and
7 deletions
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 | +*/ | ... | ... |
last.txt
0 → 100644
1 | +[object Object] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
logoIMG.jpg
0 → 100644
136 KB
package-lock.json
0 → 100644
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 | ... | ... |
views/index.ejs
0 → 100644
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> |
-
Please register or login to post a comment