<< 1번째 >>
Node 설치가 완료 되었으면
노드 REPL(Read Eval Print-Loop)을 사용 할 수 있다.
웹브라우저의 자바스크립트 콘솔과 유사하게 명령어를 입력하면 바로 실행해 결과를 출력해주는 도구이다.
usage : 커맨드라인에서 파라미터 없이 node라는 명령어를 입력하면 다음과 같이 REPL이 시작된다.
$ node
> 1
1
> var msg= "acet"
undefined
> msg
'acet'
<< 2번째 >>
node의 모듈화를 이해하려면 require()와 module.exports를 알아야 한다.
무슨 말인가하면~ 웹브라우저에서는 HTML의 <script>태그로 필요한 자바스크립트 파일을 불러오고, 로딩된 자바스크립트는 서로 참조하거나 호출 할 수 있다. 하지만 노드는 HTML 파일없이 자바스크립트 파일만 존재하기 때문에서로 참조하고 호출하기 위한 방법이 필요하다.
이를 위해 require()와 module.exports를 사용한다.(CommosJS의 모듈 표준)
"노드에서는 하나의 자바스크립트 파일이 하나의 모듈이 된다."
"자바스크립트 파일에서 정의한 객체는 모두 외부에서는 접근할 수없고 내부에서만 접근할 수 있는
지역 범위로 정의 된다."
그래서 외부에서의 접근을 허용해야 하는 객체는 명시적으로 지정해야한다.
함수나 변수를 module.exports에 할당하면 외부에서 접근할 수 있다.
모듈을 사용하는 파일에서는 require()로 다른 자바스크립트 파일을 불러와 module.exports로 허용된
변수나 함수를 사용한다.
require의 사용법을 알아보자.
노드는 많은 기본모듈을 제공을 하며, 이 기본 모듈은 다음처럼 require()로 불러온다.
var filesystem = require('fs');
var util = require('util');
fs는 파일시스템 관련 기본 모듈이고, util은 유틸리티 함수를 제공하는 기본모듈이다.
즉, 기본모듈인 fs.js와 util.js를 변수에 담고, 그 변수로 각 모듈의 함수를 사용하게 되어진다.
module.exports는 다음 세 가지 방법이 모두 가능하다.
1) exprots = {};
2) exports = something = {};
3) module.exports = {};
ex) require()와 module.exports에 대한 예제 이다.
// user_module.js
var ace = module.exports={};
// demo.js
var usermodule = require('./user_module');
require('./user_module')로 user_module.js를 불러와 usermodule 변수에 할당하면 ace 변수와 같은 객체를 참조한다.
tip)
require()를 사용할 때 주의할 점은 require()로 불러진 파일은 노드 app내에 캐싱된다는 점이다.
<< 3번째 >>
익스프레스에 대해서 알아보자.
익스프레스 : TJ할로웨이척이 만든 오픈소스 경량 웹 프레임워크이다.
app.js : express의 메인 파일로 웹 서버 생성, 라우팅 등을 모두 app.js에서 한다.
package.json : 프로젝트의 정보를 담고 있는 npm의 설정 파일이다.
routes/ : 라우팅 관련 함수, 즉 URL에 따라 호출될 함수를 모아두는 디렉토리다. 라우팅에 있는 파일들을
app.js에서 불러와 웹 서버에 라우팅을 연결한다.
public/ : css, javascript, image등의 정적 파일을 모아두는 디렉토리. 기본적으로 style.css가
생성돼 있다.
views/ : 뷰 파일이 위치하는 디렉토리이다. 자바라면 JSP 파일이 위치하는 디렉토리와 같고, 뷰템플릿에
따라 관련 파일이 저장되어진다.(.jade, .ejs 등)
라우팅은 app.get(), app.post(), app.put() 등의 함수를 사용 한다.
요 정도만 정리를 하고 개발을 하면서 필요한 것들은 사용해보면서 정리 해보도록 하겠습니다.^-^
node.js 트레이닝 ㄱㄱㄱ~~
'Front > node.js' 카테고리의 다른 글
[node.js] subModule version up 시 문제 (0) | 2014.04.21 |
---|---|
[ERROR] Error: Cannot find module './lib/process' (0) | 2014.04.21 |
node.js 셋팅(리눅스 ver) (0) | 2014.04.17 |
windows] express 셋팅 (0) | 2014.04.17 |
npm(node package manager) (0) | 2014.02.08 |