ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 제로부터 시작하는 Node.js - 14. express 프레임워크 1 - 살펴보기
    내가 보기 위해 쓰는 것/Node.js 2019. 12. 17. 09:40

    express 프레임워크에 대해서 알아봅시다.

    express 프레임워크를 이용해 프로젝트를 진행할 때, 도움을 주는 전역 모듈 설치부터 시작하겠습니다.

    npm i -g express-generator
    (npm i = npm install 입니다.)

    그 후, 이어서 express 프로젝트 명 형식으로 입력하여 express 프로젝트를 생성할 수 있습니다.

    express HelloExpress

    저는 이 글들을 쓰면서 ex라는 폴더로 정리해왔기 때문에, ex12로 하겠습니다.

     

    express 명령어로 express 프로젝트를 만들면 다음과 같은 메시지가 나옵니다. 시키는 대로 입력해줍니다.

     

    여기서 run the app은 말 그대로 express 프레임워크로 만들어진 프로젝트를 실행할 때 쓰는 명령어입니다.

    모두 시키는대로 입력 후, 127.0.0.1:3000에 접속하면 익스프레스 기본 페이지가 나옵니다. express 프레임워크의 기본 포트는 3000입니다.

     

    시키는대로 입력하여 실행한 후
    접속

    이제 본격적으로 시작할 수 있겠네요.

     

    1. express 프레임워크 옵션

    우선 간단하게 express 프레임워크의 옵션들을 간단하게 알아보고 시작합시다.

    express 프레임워크는 다음 표와 같은 옵션들을 지원합니다.

     

    매개변수 설명
    -h 혹은 --help 도움말
    -v 혹은 --version 프레임워크의 버전 출력
    -e 또는 --ejs ejs 템플릿 엔진 사용
    --hbs handlebars 템플릿 엔진 사용
    -h 또는 --hogan hogan.js 템플릿 엔진 사용
    -c <engine> 또는 --css <engine>  스타일시트 엔진 지정
    --git .gitignore 파일 생성
    -f 또는 --force 프로젝트가 존재해도 새로 생성

    예를 들어서 다음과 같이 입력하면, ejs 모듈을 사용하는 express 프로젝트 생성과 함께 .gitignore파일을 생성합니다.

     

    express -e --git HelloExpress

     

    2. 기본 프로젝트 살펴보기

    맨 처음에 만든 기본상태의 프로젝트 폴더를 뜯어보고 어떤 구조로 되어있는지 먼저 살펴봅시다.

    처음에 만들었던 프로젝트의 폴더를 보면 다음과 같이 구성되어있습니다.

     

    • bin 폴더는 프로그램의 실행과 관련된 파일이 들어있습니다. 이 폴더 내부의 www파일을 실행하여 프로젝트를 실행합니다.
    • node_modules 폴더는 프로젝트에 설치된 모듈이 들어있습니다.
    • public 폴더는 express 모듈의 static 미들웨어를 사용해 웹 서버에 올라가는 폴더입니다. 이 폴더에 js파일, css 파일, 문서 등 리소스 파일을 생성합니다.
    • routes 폴더는 페이지 라우트와 관련하여 index.js, routes 파일이 있습니다.
    • views 폴더는 ejs 파일 같은 템플릿 파일을 저장합니다.
    • 그 외 파일들은 잘 아실거라고 생각합니다.

    이제, 프로젝트의 중심이 되는 app.js를 살펴봅시다.

    // 외부 모듈 추출
    var createError = require('http-errors');
    var express = require('express');
    var path = require('path');
    var cookieParser = require('cookie-parser');
    var logger = require('morgan');
    
    // 사용자 정의모듈 추출
    var indexRouter = require('./routes/index');
    var usersRouter = require('./routes/users');
    
    //서버 생성
    var app = express();
    
    // 서버에 각종 설정을 합니다.
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');
    
    // 미들웨어를 설정합니다.
    app.use(logger('dev'));
    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));
    
    // 라우터 미들웨어를 설정합니다.
    app.use('/', indexRouter);
    app.use('/users', usersRouter);
    
    // 404 에러가 발생했을 때의 예외처리를 합니다.
    app.use(function(req, res, next) {
      next(createError(404));
    });
    
    // 에러 핸들러 입니다.
    app.use(function(err, req, res, next) {
      // 개발 중의 에러에 대한 처리
      res.locals.message = err.message;
      res.locals.error = req.app.get('env') === 'development' ? err : {};
    
      // 에러 페이지 렌더링 설정
      res.status(err.status || 500);
      res.render('error');
    });
    
    // 마지막으로 모듈화 합니다.
    module.exports = app;
    

     

    간단하게 주석으로 내용들에 대해서 적어놓았습니다. 

     

    자세한 내용과 다루는 법은 다음 글에서 작성하겠습니다.

    댓글

Designed by Tistory.