728x90
반응형
먼저 이 모듈화를 시작하게 된 계기는 라우터마다 사용할 스키마를 가져오는것이 불편하다 느꼈고, 이를 어떤 상황이라도 모든 쿼리문이 모든 스키마에 적용되도록 설계를 해보게 되었다.
이 방식을 쓰면 모든 라우터에
//Schemas
const {modelQuery} = require('../schemas/query')
const {COLLECTION_NAME, QUERY} = require('../const/consts');
이와같이 두줄만 쓰면 모든 쿼리문을 사용가능하다. 또한 스키마별로 파일을 생성하지 않아도 되며, 라우터에서 쓰일 열거체들은 const에 스키마와 같이 정의하여 훨씬 깔끔하게 mongo query를 사용할 수 있다.
먼저 mongoose를 설치하고, express파일에서 connect를 실행하게끔 하고 index.js파일부터 정의해보자.
sudo npm i mongoose
1. 파일 구조
/root
└schemas
└index.js
└query.js
└schemas.js
2. index.js
require('dotenv').config();
const mongoose = require('mongoose');
const connect = () => {
// const mongoCon = 'mongodb://test:test1234@18.140.74.102:9003/admin';
const mongoCon = 'mongodb://'+process.env.MONGO_ID+':'+process.env.MONGO_PWD+'@'+process.env.MONGO_IP+':'+process.env.MONGO_PORT+'/admin';
if (process.env.NODE_ENV !== 'production') {
mongoose.set('debug', true);
}
mongoose.connect(mongoCon, {dbName: 'OASIS'}, {
}, (error) => {
if (error) {
console.log('DB Connection is Error', error);
}
else {
console.log('DB Connect is SuccessFul!');
}
});
};
mongoose.connection.on('error', (error) => {
console.error('DB Error', error);
});
mongoose.connection.on('disconnected', () => {
console.error('DB is disconnected, Continue to Connect DB');
connect();
});
module.exports = connect;
mongoDB에 관한 내용들은 env파일에 담아두었다.
728x90
반응형
'DB > MongoDB' 카테고리의 다른 글
MongoDB | Schemas(3) (0) | 2021.09.14 |
---|---|
MongoDB | Schemas(2) (0) | 2021.09.14 |
MongoDB | Consts 만들기 (0) | 2021.09.14 |
MongoDB | 설치하기, 삭제하기 (0) | 2021.09.14 |