본문 바로가기

Back-End/Node.js

Express - 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();

// view engine setup
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);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

 

코드 해석

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');

모듈 불러오는 단계.

express외에도 http, path와 같은 기본 모듈들을 불러온다. 또한 우리가 사용하는 페이지들을 라우팅하기 위한 routes와, 사용자들을 관리하기 위한 user를 하나의 모듈로 불러온다.

 

var app = express();

app이라는 객체를 선언하고, express() 함수로 생성한다. 이를 이용하여 웹 서버의 특징을 기술한다.

 

app.set('views', path.join(__dirname, 'views'));

뷰 디렉터리 설정. 화면을 보이게 할 뷰 템플릿 파일들이 있는 경로를 라우팅하기 위해 그 값을 미리 정의한다. 화면의 출력을 담당하는 뷰 계층을 구성하는 파일들을 연결하는 부분이라고 이해하면 된다.

 

app.set('view engine', 'jade');

뷰 엔진 설정. 뷰에 사용된 기본 엔진의 이름을 설정한다. express에서는 ejs, Jade 등을 지원한다.

 

app.use(express.static(path.join(__dirname, 'public')));

정적 디렉터리 설정. 디렉터리 구조를 url에 반영하여 쉽게 접근 가능한 정적 디렉터리를 설정한다. 아래 글 참고.

2020/09/08 - [인공지능 집중 연구지도 프로그램/Node.js] - Express - 12. 정적인 파일의 서비스

반응형

'Back-End > Node.js' 카테고리의 다른 글

웹 애플리케이션 프로젝트 생성하기 [1/3]  (0) 2020.09.08
Express - 페이지 라우팅  (0) 2020.09.08
Express - 17. 수업을 마치며  (0) 2020.09.08
Express - 16. express generator  (0) 2020.09.08
Express - 15. 보안  (0) 2020.09.08