[Node.js] 생활코딩 ~36강
리트리버J
·2021. 3. 3. 21:38
cmd에서 node를 입력 후,
javascript에서 사용하는 console.log를 하면 계산 할 수 있다.
나가고 싶을 때는
ctrl + C 혹은 .exit을 하면 된다.
__dirname : 경로를 가져온다.
request.url : /1.html, /coding.jpg 등 query string을 나타내준다.
url 쿼리 스트링 값을 가져오기.
var url = require('url'); // url이라는 모듈을 사용 할 것이다.
var queryData = url.parse(_url, true).query;
console.log(queryData);
console.log(queryData.id);
response.end(fs.readFileSync(__dirname + _url));
- 파일을 읽어주는 코드
main.js(node명령어로 실행시키는 js파일)에 있는 내용은 수정하면 node명령을 재실행 해야하지만,
data폴더의 text파일은 로드 될 때마다 읽어오는 것이기 때문에 따로 재실행 할필요가 없다.
process.argv에 담겨있는 인자들 :
[0] : 노드의 위치
[1] : 실행 한 js파일의 위치
[2]부터, 입력한 parameter
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | var http = require('http'); var fs = require('fs'); // file system var url = require('url'); // url이라는 모듈을 사용 할 것이다. function templateHTML(title, list, body){ return ` <!doctype html> <html> <head> <title>WEB1 - ${title}</title> <meta charset="utf-8"> </head> <body> <h1><a href="/">WEB</a></h1> ${list} ${body} </body> </html> `; } function templateList(filelist){ var list = `<ul>`; var i = 0; while(i < filelist.length){ list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`; i = i + 1; } list = list + `</ul>`; return list; } var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; // 쿼리스트링 : /?id=TEST var pathname = url.parse(_url, true).pathname; // 루트경로 : / var title = queryData.id; if(pathname === '/'){ fs.readFile(`data/${queryData.id}`, 'utf8', (err, description) => { if(title === undefined){ title = 'welcome'; description = 'Hello, Node.js'; } fs.readdir('./data', (error, filelist) => { var list = templateList(filelist); var template = templateHTML(title, list, `<h2>${title}</h2><p>${description}</p>`); response.writeHead(200); // 200 : 파일을 성공적으로 전송 response.end(template); }); }); }else{ response.writeHead(404); // 404 : 파일 찾지 못함. response.end('Not found'); } }); app.listen(3000); | cs |
'Node.js' 카테고리의 다른 글
[Node.js] url (0) | 2021.03.03 |
---|---|
[Node.js] fs (file System) (0) | 2021.03.03 |
[Node.js] pm2 (0) | 2021.02.11 |