반응형
전체 코드
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 |