Notice
Recent Posts
Recent Comments
Today
Total
05-02 00:04
Archives
관리 메뉴

Jeongchul Kim

NodeJs 본문

Computer Language

NodeJs

김 정출 2016. 2. 23. 11:54


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();

})




Comments