본문 바로가기

Javascript/NodeJS

[NodeJs] 웹 서버 커스터마이징 설정

반응형

app.js을 통해서 Node 웹서버를 커스터마이징 한 미들웨어로 설정할 수 있어, 관련해서 필요한 기본적인 설정을 작성했습니다.

 


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 session = require('express-session');
var flash = require('connect-flash');

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

// app.use(function(req, res, next) {
//   console.log(req.url, '저도 미들웨어입니다.');
//   next();
// });

// 서버 로그
app.use(logger('dev'));
//app.use(logger('short'));
//app.use(logger('common'));
//app.use(logger('combined'));

// 정적 파일 라우터 기능
app.use(express.static(path.join(__dirname, 'public')));

// 파일 데이터 해석 기능
app.use(express.json());
// app.use(bodyParser.raw());
// app.use(bodyParser.text());

// 주소 형식
app.use(express.urlencoded({ extended: false }));

// 쿠키 해석
app.use(cookieParser());

// 세션 설정
app.use(cookieParser('secret code'));
app.use(session({
  resave: false,            // 세션 재저장 여부
  saveUninitialized: false, // 세션 저장 여부
  secret: 'secret code',    // 필수, cookieParser의 비밀키
  cookie: {
    httpOnly: true,         // 클라이언트에서 쿠키값 확인가능 여부
    secure: false,          // https 적용 여부
  },
}));

// 일회성 메시지를 브라우저에 노출
app.use(flash());

// 라우터 설정
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;

 


반응형

❥ CHATI Github