Node.js 기초와 모듈 (내장 모듈, npm, 사용자정의 모듈)
Node.js 기초
* 노드 설치
https://nodejs.org/ko/ 에서 설치 LTS 버전 설치하면 된다. (document 확인도 여기서 함)
* 노드 실행
1. 노드 프로젝트(?)를 시작할 디렉토리에 간다.
2. 원하는 자바스크립트 파일을 만든다. (ex. jeong_pro.js)
3. 명령프롬프트에서 'npm init' 을 입력하고 프로젝트에 대해 몇 가지 입력하면 package.json 파일이 디렉토리에 생성된다. (package.json은 패키지에 관한 정보와 의존중인 버전정보를 갖고있다.(메타데이터))
4. 자바스크립트 파일에서 사용하는 모듈이 준비되었는지 확인하고 설치한다. (node_modules 파일이 생성됨)
(자바스크립트파일에서 내장 모듈로만 이뤄진게 아니라면 npm으로 설치해야할 모듈들이 있을 수 있다.
ex. npm install express --save (--save플래그는 package.json에 패키지를 추가시킨다.)
5. 명령프롬프트에서 node 로 실행한다. (ex. node jeong_pro.js 입력 )
C,C++에서 #include, 파이썬에서 import를 쓰듯 노드에서는 require 키워드를 사용한다.
require 키워드를 이용해서 사용할 모듈을 불러온 후에 사용법에 맞게 사용하는 스타일의 코딩이다.
노드에서 크게 3가지로 모듈을 분류할 수 있다.
1. 내장 모듈 ( fs , util, url 등..)
2. npm으로 불러온 서드파티 모듈(passport, mongoose 등..)
3. 사용자 정의 모듈
* 내장 모듈 요청하기
1 2 3 4 5 6 | var url = require("url"); var parsedURL = url.parse("http://www.example.com/profile?name=barry"); console.log(parsedURL.protocol); // "http:" console.log(parsedURL.host); // "www.example.com" console.log(parsedURL.query); // "name=barry" | cs |
내장모듈 url을 require로 불러와서 그 개체의 parse 함수를 이용해 url에서 정보를 추출했다.
* npm으로 서드파티 모듈 요청하기
node.js를 설치하면서 사실 npm도 설치된 것이다. (npm은 node.js의 공식 도우미)
1 2 3 4 5 6 7 8 9 10 11 | var express = require("express"); //Express를 변수에 담는다. var app = express();//Express를 호출하고 새로운 Express 애플리케이션을 변수(app)에 넣음 app.get("/",function(request, response){ response.send("Hello World"); // HelloWorld를 전송한다. }); app.listen(3000, function(){ console.log("Express app started on port 3000."); //3000번 포트에서 Express서버를 시작하고 시작했다는 로그 기록 }); |
npm install express --save 를 입력해서 설치하고 위 소스를 돌리면 잘 실행된다.
* npm으로 다운받아 설치할 수 있는 모듈이 어떤것이 있는지 궁금하고 사용방법이 궁금하다면
https://www.npmjs.com/ << 여기서 검색해보면 된다.
https://npms.io/ <<여기서는 설치하려는 모듈이 얼마나 안정적이고 유명한지를 별점을 통해 알 수 있다.
* 사용자 정의 모듈 만들고 요청하기.
0에서 100사이 임의의 정수를 반환하는 함수를 가진 모듈 만들기
1 2 3 4 5 6 | var MAX = 100; function randomInteger(){ return Math.floor((Math.random() * MAX)); } module.exports = randomInteger; //다른 파일에 모듈 노출 |
이 코드를 random-integer.js 라는 파일에 적어 만들었다.
module.exports를 이용해 모듈을 내보낸다.
* module.exports 에는 변수에 할당할 수 있는 모든 것을 할당할 수 있다. 여기서는 함수를 할당 했지만 보통 개체를 할당한다.
1 2 3 4 | var randomInt = require("./random-integer"); //상대경로 console.log(randomInt()); // 15 console.log(randomInt()); // 27 console.log(randomInt()); // 67 |
다른 자바스크립트파일에서 위와 같이 require로 해당 파일 요청해서 모듈을 사용한다.