티스토리 뷰
몽구스 모듈로 Database를 운용하여 로그인기능 구현하기
안녕하세요:)
이번 포스팅에서는 몽구스 mongoose 모듈을 운용해보겠습니다. mongodb모듈과는 달리 몽구스 모듈은 스키마 객체에 도큐먼드를 매핑해서 운용합니다. id와 name과 password 세가지의 값을 포함하는 도큐먼트를 데이터베이스 컬렉션내에서 선언한후 node의 코드에서 매핑한다 해보겠습니다.
이전까지의 포스팅에서는 mongodb모듈을 활용한 아래와 같은 방법을 사용했습니다.
1. database라는 변수명으로 로컬 데이터베이스와의 커넥션을 객체화 시키기
2. 객체화 시킨 database를 활용하는 함수를 모듈화하여 사용하기, 예를 들어 addUser함수 모듈에서는 database의 users 컬렉션과 커넥션을만든후 insertMany라는 메소드를 사용하였습니다.
하지만! 몽구스 모듈에서는 위의 과정과 많이 다릅니다. 아래의 과정을 수반합니다.
1. 스키마와 모델을 정의 하여 데이터베이스의 데이터와 매핑한 객체를 생성 (사실 스키마의 정의는 모델을 정의하기위한 과정에 포함됩니다.)
커넥션을 생성해서 매핑해준 이후 on 메소드의 open, disconnected 상황에 맞게 위와 같이 정의해 주었습니다.
2. 물론 코드의 길이는 훨씬 길어졌지만 이후 함수내에서 DB를 사용할때 컬렉션에 대한 새로운 커넥션을 굳이 생성해주지 않아도 됩니다. 그에 따른 addUser 함수는 아래와 같습니다. 새로운 도큐먼트를 객체로 생성한후 save라는 메소드를 이용해 삽입할수 있습니다.
new UserModel({id:~~~~}) 가 조금 풀어서해석하면 new mongoose.model("users", UserSchema)({id:~~~~}) 이니까
새로운 도큐먼트(코드에선 스키마) 객체를 생성하고 save 한 코드가 위와 같습니다. 콜백함수를 통해 오류가 없다면 addedUser라는 값으로 리턴될수 있도록 하였습니다.
나중에 해당 함수를 호출시 addedUser 가 리턴된다면 데이터 삽입에 성공했다는 신호일 것입니다. 아래의 코드가 함수를 호출한 예입니다.
다음 포스팅에서는 암호화 데이터를 DB에 삽입하는것을 다루어 보겠습니다...
'Database > Express & MongoDB' 카테고리의 다른 글
Express & MongoDB - 스키마 메소드 모듈분기 (1) | 2021.08.05 |
---|---|
Express & MongoDB - 데이터 암호화 (0) | 2021.08.04 |
Express & MongoDB - 수도 퀴즈 웹사이트 (0) | 2021.08.02 |
Express & MongoDB - DB 데이터 삽입, 수정 (0) | 2021.07.21 |
Express & MongoDB - DB 연동 (1) | 2021.07.20 |