index.js 1.35 KB
const mongoose = require('mongoose');
const {MONGO_ID, MONGO_PASSWORD, NODE_ENV} = process.env;
const MONGO_URL = `mongodb://localhost:27017/admin`;
const connect = () => {
    if (process.env.NODE_VIEW !== 'production') {
        mongoose.set('debug', true);
    }
    mongoose.connect(MONGO_URL, {
        dbName: 'chat',
        useUnifiedTopology: true
    }, (err) => {
        if (err) {
            console.error('몽고디비 연결 에러', err);
        } else {
            console.log('몽고디비 연결 성공');
        }
    });
};

module.exports = () => {
    connect();
    mongoose.connection.on('error', (err) => {
        console.log('연결 종료');
    });
    mongoose.connection.on('disconnected', (err) => {
        console.error('연결이 끊어졌습니다. 재접속 시도중');
        connect();
    });
};
// 몽고디비는 데이터의 형식조건에서 자유롭다
// json객체 형태라면 무엇이든 저장이 가능하다
// 이러한 자유도에 제약을 걸고(형태에 제약) 안정성을 높이는 몽구스를 사용할 수 있다
// 몽고디비는 sql이 아닌 자바스크립트를 쓰기 때문에 노드와 궁합이 좋다
// 마이에스큐엘도 시퀄라이즈를 쓰면 자바스크립트로 제어할 수는 있다
// 몽고디비서버 실행 명령어: mongod --dbpath C:\Users\kimseoyoung\mongodb_data --auth