본문 바로가기
nodejs

[node.js] express 기본구조 생성

by jinbro 2017. 4. 30.
[express 쉽게 구조 생성하기 - 리눅스 환경]
1) npm install -g express-generator (오류가 난다면 sudo를 붙여서) : npm을 통해 express 구조 생성기를 다운받음
2) 다운로드 후 express -h 를 콘솔창에 입력하여 generator 명령어가 정상동작하는지 확인
=> -h 은 옵션값으로 어떤 작업을 할 수 있는지 알 수 있음
=> generator로 어떻게 구조를 생성할 수 있는지 나옴 : Usage 참고

3) express 옵션값 디렉토리명 순으로 입력하여 구조 생성하기
4) express myapp : 우선 아무런 옵션값 없이 생성해보기
5) cd myapp : 해당 디렉토리로 이동
6) npm install : express 프로젝트에 필요한 모듈을 다운로드받음(package.json에 모듈 목록 참고함, 최초 다운로드 받고 싶다면 여기에 명시해주면 됨)

7) DEBUG=myapp:* npm start : 어플리케이션 디버깅을 하기위한 명령어와 서버 실행 명령어

=> myapp/bin/www 파일을 열어보면 3000번으로 포트번호가 기본 설정되어있음
=> aws와 같은 클라우드 서버를 활용한다면 서버의 포트번호 80과 3000번을 열어둬야 외부 클라이언트로 접속가능함

8) express 전체구조는 아래와 같음
=> express -h를 통해서 알아본 옵션값으로, package.json 필요한 모듈 미리 명시하는 것등으로 기본 구조 만드는 것에 커스텀할 수 있음


[express 구조]
1) package.json : 프로젝트에 필요한 노드 모듈, 프로젝트 관련 정보를 정의하는 파일
2) app.js : express 객체를 생성하고, express 객체의 메서드를 통해 환경설정을 함
- 정적 파일 호스팅 
- express 앱 내 모듈 사용관련 설정(http 요청을 받기위한 모듈, POST 요청 데이터 접근을 위한 모듈 등)

3) routes/index.js : 라우팅 처리를 하는 파일
- 요청에 대한 응답 처리(라우팅)를 하는 파일
- 응답할 때 웹문서를 랜더링(res 객체의 render 메서드를 이용, 템플릿엔진 사용)할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* routes/index.js */
var express = require('express')
var router = express.Router()
 
router.get('/'function(req, res){
     /* 응답처리 */
})
 
/* app.js */
var express = require('express')
var routes = require('./routes/index')
var app = express()
 
app.use('/', routes)
cs

4) views : 템플릿엔진 관련 뷰 파일이 담길 디렉토리
- 앞으로 템플릿엔진 포스팅을 통해 사용 예시를 보게될 것임
- routes 파일(routes/index.js)에서 라우팅을 처리, 요청에 대해 뷰 파일(자바스크립트 연산 결과 + 뷰 코드)을 응답

[참고자료]
1) express 공식홈페이지, Express 생성기 : http://expressjs.com/ko/starter/generator.html
2) html5around, node.js 기본 구조 구축하기 : https://goo.gl/weK4YS


댓글