POMOTODO : DB
2022. 1. 5. 19:23ㆍ프로그래밍/개인프로젝트
POMOTODO를 만들면서 작성한 코드를 복습하기 위해 작성하는 글입니다.
1. MongoDB에 가입하고 컬렉션을 생성
2. CONNECT 버튼 -> Connect Your Application - Select your driver and version에서 node.js확인하고 아래의 url을 복사
3. 터미널에서 몽고db 설치 (npm install mongodb)
4. server.js 상단에 몽고디비 첨부
const MongoClient = require('mongodb').MongoClient;
5. server.js에 몽고디비 연결코드작성
MongoClient.connect('복사한 URL', function(err, client){
if (err) return console.log(err);
//서버에 사용되는 코드 여기에 작성
app.listen('5501', function(){
console.log('5501포트 접속성공')
});
})
복사한 URL은 대략 이렇게 생겼고 빨간글씨로 표시한 부분은 각자 계정에 맞게 변경
mongodb+srv://db접속용아이디:db접속용비밀번호@cluster0.l9rep.mongodb.net/db이름?retryWrites=true&w=majority
안된다면 체크할 사항
- 오타확인
- 빨간글씨 확인
- 디비생성시 network access 허용한 ip에서 접속하고 있는지
- app.listen코드 위치확인
6. db통신코드
let db;
MongoClient.connect('복사한 URL', function(err, client){
if (err) return console.log(err);
db = client.db('db이름');
//서버에 사용되는 코드 여기에 작성
app.listen('5501', function(){
console.log('5501포트 접속성공')
});
})
7. 자료 조회/ 추가 / 수정 / 삭제
//db조회 예시
db.collection('컬렉션명').findOne({'조건':'값'}, function(err, result){
console.log(result);
});
findOne대신 insertOne, updateOne, deleteOne등을 넣어서 추가/ 수정/ 삭제 를 할 수 있다
//실제 사용한 코드 예시
app.get('/',homeLoginCheck,function(req, res){
// pomodoro 기록 출력하는 코드
db.collection('pomodoro').findOne({id:req.user.id}, function(err, pomodoroResult){
pomoResult = pomodoroResult.contentHTML;
db.collection('todolist').findOne({id : req.user.id}, function(err, todolistResult){
todoResult = todolistResult.todoListHTML;
db.collection('not-todolist').findOne({id : req.user.id}, function(err, nottodolistResult){
notTodoResult = nottodolistResult.notTodoListHTML;
//record컬렉션을 조회해서 없으면 만들어주는 코드
db.collection('pomodoro-record').findOne({ id: req.user.id, 'yyyymmdd' : yyyymmdd() }, function (err, pomoRecCheck) {
if(pomoRecCheck==null){
db.collection('pomodoro-record').insertOne({ 'id' : req.user.id, 'yyyymmdd' : yyyymmdd() ,'pomoRecord' : '' }, function(err, result){
})
}
})
db.collection('todolist-record').findOne({ id: req.user.id, 'yyyymmdd' : yyyymmdd() }, function (err, todoRecCheck) {
if(todoRecCheck==null){
db.collection('todolist-record').insertOne({ 'id' : req.user.id, 'yyyymmdd' : yyyymmdd() ,'todoRecord' : '' }, function(err, result){
})
}
})
db.collection('not-todolist-record').findOne({ id: req.user.id, 'yyyymmdd' : yyyymmdd() }, function (err, notTodoRecCheck) {
if(notTodoRecCheck==null){
db.collection('not-todolist-record').insertOne({ 'id' : req.user.id, 'yyyymmdd' : yyyymmdd() ,'notTodoRecord' : '' }, function(err, result){
})
}
})
res.render('POMOTODO.ejs', { posts : req.user.id, pomodoroRecord : pomoResult, todoListRecord : todoResult, notTodoListRecord : notTodoResult});
})
})
})
});
'프로그래밍 > 개인프로젝트' 카테고리의 다른 글
POMOTODO : 이슈 (jQuery sortable 범위인식문제) (0) | 2022.01.08 |
---|---|
POMOTODO : jQuery (ajax, sortable) (0) | 2022.01.06 |
POMOTODO : 암호화 (0) | 2022.01.05 |
POMOTODO : session, passport, serialize, deserialize (0) | 2022.01.05 |
POMOTODO : ejs템플릿 include 하기 (0) | 2022.01.05 |