개발 환경일 때만 콘솔을 통해 몽구스가 생성하는 쿼리 내용을 확인할 수 있게 하는 코드입니다.

    몽구스와 몽고디비를 연결하는 부분입니다. 몽고디비 주소로 접속을 시도합니다. 비밀번호(nodejsbook 부분)를 자신의 비밀번호로 바꾸는 것을 잊지 마세요! 접속을 시도하는 주소의 데이터베이스는 admin이지만, 실제로 사용할 데이터베이스는 nodejs이므로 두 번째 인수로 dbName 옵션을 줘서 nodejs 데이터베이스를 사용하게 했습니다. 마지막 인수로 주어진 콜백 함수를 통해 연결 여부를 확인합니다.

    useNewUrlParser: true는 입력하지 않아도 되지만 콘솔에 경고 메시지가 나타나므로 넣었습니다.

    몽구스 커넥션에 이벤트 리스너를 달아뒀습니다. 에러 발생 시 에러 내용을 기록하고, 연결 종료 시 재연결을 시도합니다.

    app.js를 만들고 schemas/index.js와 연결합니다.

    app.js

    const express = require('express');
    const path = require('path');
    const morgan = require('morgan');
    const nunjucks = require('nunjucks');
    
    const connect = require('./schemas');
    
    const app = express();
    app.set('port', process.env.PORT || 3002);
    app.set('view engine', 'html');
    nunjucks.configure('views', {
      express: app,
      watch: true,
    });
    connect();
    
    app.use(morgan('dev'));
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    
    app.use((req, res, next) => {
      const error =  new Error(`${req.method} ${req.url} 라우터가 없습니다.`);
      error.status = 404;
      next(error);
    });
    
    app.use((err, req, res, next) => {
      res.locals.message = err.message;
      res.locals.error = process.env.NODE_ENV !== 'production' ? err : {};
      res.status(err.status || 500);
      res.render('error');
    });
    
    app.listen(app.get('port'), () => {
      console.log(app.get('port'), '번 포트에서 대기 중');
    });
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.