[생활 코딩] node.js수업목적 ~ 파일을 이용해 본문 구현
node.js란?
사람들과 상호작용을 할 수 있는 수단이다. 그러므로 꼭 웹을 통해서 연결을 해야되며, cmd창에서 node.js파일이 있는 폴더에서 node 파일명.js 라고 입력을 해야 연결이 된다. 굉장히 중요한 기능인 것 같으며 내가 웹을 구현할 때도 많이 사용되는 기능인 것 같다. 생활 코딩 이외에도 많이 공부해볼 예정!
URL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var http = require('http'); var fs = require('fs'); var url = require('url'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; //queryData -> URL의 쿼리 스트링을 var title = queryData.id; if(_url == '/'){ title = 'Welcome'; } if(_url == '/favicon.ico'){ return response.writeHead(404); } response.writeHead(200); response.end(queryData.id); }); app.listen(3000); | cs |
queryData -> URL내의 쿼리 스트링을 불러옴
queryData.id -> 쿼리 스트링의 id값을 불러옴
쿼리 스트링은 ?로 시작하기로 약속되어 있다. 나중에 main.js에서 id값으로 파일을 만들고 파일을 불러서 읽어올 예정이다.
파일 불러오기
1 2 3 4 5 6 | const fs = require('fs'); fs.readFile('sample.txt', 'utf8', function(err, data) { if (err) throw err; console.log(data); }); | cs |
파일을 불러오는 방식은 다음과 같다. 여기서 readFile에서 F는 대문자라는 점을 주의해야된다. 처음에 소문자로 했다가 파일을 불러오지 못하여서 보니, 매서드는 readFile 임을 알았다.
node.js와 html 연결
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | var http = require('http'); var fs = require('fs'); var url = require('url'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; var title = queryData.id; if(_url == '/'){ title = 'Welcome'; } if(_url == '/favicon.ico'){ return response.writeHead(404); } response.writeHead(200); fs.readFile( 'data/${queryData.id}', 'utf8', function(err, description) { var template = ` <!doctype html> <html> <head> <title>WEB1 - ${title}</title> <meta charset="utf-8"> </head> <body> <h1><a href="/">WEB</a></h1> <ol> <li><a href="/?id=HTML">HTML</a></li> <li><a href="/?id=CSS">CSS</a></li> <li><a href="/?id=JavaScript">JavaScript</a></li> </ol> <h2>${title}</h2> <p>${description}</p> </body> </html> `; response.end(template); }) }); app.listen(3000); | cs |
위에 있던 main.js에서 html을 추가한 코드이다. main.js에서 html을 추가하는 이유는 id값에 따라 내용을 변화시키기 위해서이다. ${} 을 사용하게 되면 url에 따라서 지정을 할 수 있게 된 것이다. url의 id값에 따라 queryData.id값이 바뀔 것이며 여기서 title이라는 변수에 id값을 넣어놓았으므로 ${title} 이라고 바꾸게 되면 링크에 따라 제목도 바뀌게 된다. 링크에 따라 제목이 바뀌었으면 내용도 바꾸어야 된다. 이 방식은 위에서 파일을 읽어오는 방식을 활용했다. description이라는 매개변수에 내용이 저장되었으므로 ${description} 을 p태그 안에 넣어주었다.
댓글남기기