본문 바로가기
카테고리 없음

Node.js 외부모듈

by 맑은청이 2020. 4. 25.
728x90
반응형

안녕하세요! 보안전문가가 꿈인 부산공수니입니다~!

 

 

오늘은 일반 개발자가 만들어 배포한 외부모듈에 대해 알아보겠습니다!

서버를 만들겠다고 해서 서버를 구성하는 부품을 하나하나 만들 필요는 없습니다. 컴퓨터를 만들려면 조립을 해야지 제품 하나하나를 다 생산하는 게 아닌 거 처럼 말입니다.  그럼 시작해 보겠습니다.

 

개념 설명
ejs 모듈/ jade 모듈 웹 페이지를 동적으로 생성하는 템플릿 엔진 모듈
supervisor 모듈  파일의 변경 사항을 자동으로 인식하고 종료 후 다시 실행
forever 모듈  웹 서비스 장애와 같은 예외 상황을 대비하고자 만들어진 모듈
npm install 명령  외부 모듈을 설치할 때 사용
package.json 파일 Node.js 프로젝트의 환경 설정 정보를 담은 파일
npm int 명령 Node.js 프로젝트를 생성할 때 사용

 

Node.js 는 npm(Node Package Manager) 을 기반으로 모듈을 공유합니다.

 

외북 모듈을 설치할 때는 콘솔 화면에 아래 명령어를 입력하면 됩니다. 

npm install 모듈명

 

 

 

 

이렇게 설치한 모듈은 내장 모듈처럼 사용할 수 있습니다.

//모듈을 추출
var ejs = require('ejs');
var jade = require('jade');
//내장 모듈과 별다른 차이 없음

*2016년 부터 jade 모듈이 pug로 변경되었습니다.*

 

-ejs 모듈 : 템플릿 엔지 모듈로 특정 형식의 문자열을 HTML 형식의 문자열로 반환합니다. 

 

//간단한 ejs 코드입니다.
<% var name = 'RintIanTta'; %>

<h1><%= name %></h1>
<p><%= 52 * 273 %></p>

<hr>
<% for(var i = 0;i < 10; i++){%>
	<h2>The Square of <%= i %> is <%= i * i %></h2>
<% } %>

 

자주 봐왔던 코드가 아니라 좀 당황스럽지만 조금만 보면 금방 이해할 수 있습니다.

태그 설명
<% Code %> 자바스크립트 코드 입력
<%= Value %> 데이터를 출력

 

-ejs 모듈의 메서드

render(str, data,option) : ejs 문자열을 HTML 문자열로 변경합니다.

http.createServer(function (request,response){
	fs.readFile('ejsPage.ejs','utf8',function(error,data){
	response.writeHead(200,{'Content-Type':'text/html'});
	response.end(ejs.render(data));//HTML 로 변환
	});
}).listen(52273,function(){
	console.log('Server Running');
});

 

 

이런 걸 어디다가 사용하나요?

-> HTML 페이지 소스코드는 정적 코드 한 번 생성하면 절대 변하지 않습니다. 즉 HTML 페이지를 제공하는 서버는 클라이언트에게 늘 같은 데이터를 보여줍니다. 하지만 템플릿 엔진을 사용하면 항상 다른 페이지를 보여줄 수 있습니다. 우리가 보는 네이버나 다음 포털 사이트의 뉴스 기사들도 이러한 템플릿 엔진을 통해 제작되었습니다. 

 

 

-jade 모듈 (현재는 pug 모듈)

이 역시 템플릿 엔진 모듈입니다. Node.js에서 가장 많이 사용되는 웹 프레임워크인 express 프레임 워크가 템플릿 엔진으로 주로 ejs 와 jade 모듈을 주로 사용하기에 이 두가지를 설펴봅니다. 

 

일단 'npm install jade'로 모듈을 설치하셔야합니다.

jade 모듈의 메서드

compile(string, option) : jade 문자열을 HTML 문자열로 바꿀 수 있는 함수를 생성해야합니다.

var http = require('http');
var fs = require('fs');
var jade = require('jade');
http.createServer(function (request, response){
	fs.readFile('JadePage.jade','utf8',function (error,data){
		var fn = jade.compile(data);	
		response.writeHead(200,{'Content-Type':'text/html'});
		response.end(fn());	
	});
}).listen(52273,function() {
	console.log('Server Running at ');
});
doctype html
html
    head
        title Index Page
    body
        //JADE String
	#header
        	h1 Hello Jade .. !
        	h2 Lorem ipsum
        hr
	.article
       	 	a(href="http://habit.co.kr",data-test="multiple Attribute") Go To Hanbit Media

-jade 기본 형식

위에 있는 jade 기본 형식도 희한 합니다. 하지만 이것도 보다 보니 뭔가 알거 같기도 합니다.  jade 에서 가장 중요한 것은 ' 들여쓰기'입니다. 들여쓰기로 HTML 구조를 형성합니다. 반드시 탭과 띄어쓰기 중 한 가지 형태만 사용해야합니다. 첫 줄에 탭을 쓰고 다음 줄에 띄어쓰기를 쓰면 오류가 발생합니다. 

 

태그 안에 글자를 입력하고 싶을 땐 지정한 태그 아래에 한 단계 더 들여쓰기를 한 후 원하는 글자를 입력합니다. 태그에 속성에 여러 개 입력하고 싶을 때는 쉼표를 사용해 구분합니다. 

div 태그 입력하지 않고 #header 태그로 생성할 수 있습니다. 

마찬가지로 .article 태그를 입력하는 것만으로 도 가능합니다. 

script 태그와 style 태그는 '.' 기호를 찍어줍니다.

 

-jade 특수 기호

-Code : 자바스크립트 코드 입력

#{Value} : 데이터 출력

=Value : 데이터 출력

 

전역 모듈

-supervisor

파일 내용을 변경해도 현재 실행 중인 스크립트에는 영향을 끼치지 못합니다. 하지만 supervisor 모듈은 이런 사항을 자동으로 인식하고 종료한 뒤 다시 실행 시켜줍니다.

 

-forever

error가 발생할 경우 프로그램이 터지는데 forever을 사용하면 error 나지 않는 부분에서는 계속 실행이 됩니다.  

 

 

 

글이 도움이 되셨나요?

좋아요구독하기 부탁드립니다.

728x90
반응형