NodeJs
NodeJs NodeJs 서버 개발 환경 Server Side Javascript Event Driven Non-blocking(비동기) I/O Event Loop & Callback Pattern http://nodejs.org
웹 서버 만들기 var express = require("express"); var http = require("http"); var app = express(); app.use(express.static(__dirname + "/public")); http.createServer(app).listen(8080, function(){ console.log("server running on port 8080"); });
전역 객체 Global Object NodeJs에서 사용하는 전역 객체 -> Browser의 Window 객체
__filename : 현재 실행 중인 코드의 경로와 파일 이름 __dirname : 현재 실행 중인 코드의 디렉토리 경로
console 객체 console.log() : 콘솔창에 로그를 남긴다.
process 객체 프로그램과 관련된 기능을 다루는 객체 process.argv : 실행시 전달된 매개변수 process.env : 컴퓨터 환경고 관련된 정보 process.version : NodeJs 버전 정보 process.platform : 플랫폼 process.exit(0) : 프로그램 종료 process.memoryUsage() : 메모리 사용 정보 객체 반환 process.uptime() : 프로세스 실행 시간
exports / require('path.js') JavaScript 파일(.js)이 2개 이상인 경우, 별로 구성된 파일을 사용 exports 된 모듈을 사용하는 경우 require()
calc.js를 가져온다. require와 exports를 사용
//main.js var calc = require('./calc.js'); var res = calc.plus(10,20); console.log("res : "+res)
//calc.js exports.plus = function (a,b) { return a+b; }
package.json { "main" : "./calc.js" }
main.js var calc = require('calc'); var res = calc.plus(10,20); console.log("res : "+res)
내장 모듈 NodeJs가 기본 제공하는 API API 문서 http://nodejs.org/api
OS모듈 os 관련 정보 os.hostname() : 호스트 이름 os.type() : os 이름 os.platform() : 플랫폼 os.totalmem() : 시스템 총 메모리 os.freemem() : 시스템 가용 메모리 os.cpus() : cpu 정보 객체 os.networkInterfaces() : 네트워크 인터페이스(랜카드) 정보 배열
url 모듈 url에서 정보를 추출하거나 변환 url.parse(urlStr) : URL 문자열을 URL 객체로 변환 url.format(urlObj) : URL 객체를 URL 문자열로 변환
querystring 모듈 URL 객체의 쿼리 관련 querystring.parse(str) : 쿼리 문자열을 쿼리 객체로 변환
var url = require("url"); var querystring = require("querystring"); var url_string = "https://www.google.co.kr/webhp?sourceid=chrome-instant&ion;=1&espv;=2&ie;=UTF-8#newwindow=1&q;=jungchul.tistory"; var obj = url.parse(url_string); console.log(obj); var query = querystring.parse(obj.query); console.log(query);
util 모듈 util.format() : 매개 변수로 입력한 문자열을 조합해 반환
var util = require('util'); var data = util.format('%d+%d=%d',1,2,1+2); console.log(data);
crypto 모듈 해시 생성과 암호화
var crypto = require('crypto'); var hash = crypto.createHash('sha1'); // crpyto.getHashes() hash.update('content data input'); var output = hash.digest('hex'); console.log(output);
readline 모듈 표준콘솔(키보드)로부터 한 줄 씩 입력하며, 반드시 close() 호출
var readline = require('readline'); var r1 = readline.createInterface(process.stdin,process.stdout); r1.question("What your name?", function(answer) { console.log("Hello, Mr(s)",answer); });
var readline = require('readline'); var r1 = readline.createInterface(process.stdin,process.stdout); r1.setPrompt("type>"); r1.prompt(); r1.on('line',function(line) { if(line == 'exit') { r1.close(); } console.log(line); r1.prompt(); }); //on 이벤트 핸들러 r1.on('close',function() { process.exit(); })
from http://jeongchul.tistory.com/357 by ccl(A)
댓글
댓글 쓰기