-
제로부터 시작하는 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;
간단하게 주석으로 내용들에 대해서 적어놓았습니다.
자세한 내용과 다루는 법은 다음 글에서 작성하겠습니다.
'내가 보기 위해 쓰는 것 > Node.js' 카테고리의 다른 글
제로부터 시작하는 Node.js - 15. express 프레임워크 2 - 라우팅, 실행환경 설정 (0) 2019.12.23 제로부터 시작하는 Node.js - 13. MySQL 연결, CRUD 구현 (0) 2019.11.19 제로부터 시작하는 Node.js - 12. RESTful 웹 서비스 개발 (1) 2019.11.16 제로부터 시작하는 Node.js - 11. Express 모듈 - 3 (미들웨어 2) (0) 2019.11.16 제로부터 시작하는 Node.js - 10. Express 모듈 - 2 (미들웨어 1) (0) 2019.11.07