Javascript/Node.js

Node.js 기초와 모듈 (내장 모듈, npm, 사용자정의 모듈)

JEONG_AMATEUR 2017. 9. 24. 19:37
반응형

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(3000function(){
    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로 해당 파일 요청해서 모듈을 사용한다.


반응형