README.md 1.32 KB

App2: MongoDB, Mongoose를 이용하여 CRUD 처리

1. Mongoose 설치

# mongoose ORM 설치
npm install --save mongoose

2. MongoDB 접속

app.js에 다음 추가

var mongoose   = require('mongoose');
// 본인의 mongodb 접속 URL을 확인해서 id:pwd@server:port/dbname 의 형태로
// local의 경우 mongodb://localhost/dbname 형태
mongoose.connect('mongodb://user:asdasd@ds041394.mongolab.com:41394/nodewp');
mongoose.connection.on('error', console.log);

3. User 모델 추가

사용자를 저장할 document collection의 모델 models/User.js에 추가

4. users.js controller 구현

Route 함수에 맞게 User 모델을 이용하여 실제 controller logic 구현

5. 사용자 인증

  • req.session.user 객체가 있으면 로그인 된 것으로 간주
  • signout에서 delete req.session.user를 통해 user객체 삭제

6. Middleware를 이용하여 res.locals에 currentuser와 flashMessages 전달

app.use(function(req, res, next) {
  res.locals.currentUser = req.session.user;
  res.locals.flashMessages = req.flash();
  next();
});

7. 문제점

  • 비밀번호가 Database에 plain text로 저장된다. 사용자의 개인정보나 비밀번호는 암호화 해서 저장할 필요가 있음
  • 이 부분은 다음 시간에 더 나은 방법으로 새로 구현할 예정