티스토리 뷰
안녕하세요 :)
이번에 다루어 볼 내용은 Node.js 의 Express 모듈에 몽고DB를 연동한 웹 어플리케이션을 만들어 보겠습니다.
먼저 mongodb를 연동하기 위해 필요한 외부 모듈 명은 mongodb입니다. npm install --save 명령을 통해 설치를 해주고 필요한 모듈들의 설치를 진행해준후에 아래와 같은 모듈이 설치되어있는 디렉터리를 만들어주세요. (설치된 모듈은 package.json 파일을 통해 알수있습니다.)
이후 로그인 확인을위해 이전에 만들어둔 users 데이터베이스에 id, name, password 정보를 포함하는 도큐먼트를 만들어줍니다. 아래와 같습니다.
db.users.insert({ id: 'test01', name : 'kim', password : 1234 })
db.users.find().pretty() , (여기서 pretty는 데이터를 공백과 줄바꿈으로 보기좋게 만들어주는 옵션같은 명령)
이후 로그인페이지는 이전에 Node.js에서 사용한 로그인 페이지와 비슷한 방법으로 public 폴더를 만들어 안에 넣어줍니다.
그리고 데이터베이스와 로그인 미들웨어를 제외한 에러처리및 포스설정등 기본적인 코드는 아래와 같습니다.
(35~130번 라인이 데이터베이스와 로그인 미들웨어에 해당합니다.)
데이터베이스와 로그인 미들웨어 관련 코드, 각 코드에대한 설명은 주석을 통해 기입해 두었습니다. 데이터베이스와의 커넥션을 생성하는 함수와 로그인시 DB의 id와 password 정보를 비교해주는 함수, submit 버튼을 누를시 처리해줄 미들웨어로 구성되어있습니다.
결과)
위의 예제를 통해 DB를 이용한 Quiz 웹 어플리케이션을 개발해보겠습니다.
login.html을 변형하여 국가명, 수도명을 입력 받고 DB를 조회하여 각 정보가 일치할경우 다음과 같은 문구를 출력하고
"국가명" 의 수도는 "수도명"으로 정답입니다.
각정보가 일치하지 않을시 아래와 같은 문구를 출력하고 홈화면으로 되돌아갈 하이퍼링크 <a>태그를 웹페이지에 출력해보겠습니다.
"국가명"의 수도는 "수도명" 이 아닙니다.
일단 데이터베이스를 아래와 같이 만들어 주었습니다. country라는 컬렉션 안에 한국과 일본에 해당하는 도큐먼트를 삽입했고 이를 이용해 퀴즈 웹사이트를 만들어보겠습니다.
코드)
코드중간에 데이터베이스 커낵션을 객체화 하는과정에서 아래와 같이 새로운 DB를 초기화해 주어야 오류가 잘 나지 않습니다.
결과)
'Database > Express & MongoDB' 카테고리의 다른 글
Express & MongoDB - 수도 퀴즈 웹사이트 (0) | 2021.08.02 |
---|---|
Express & MongoDB - DB 데이터 삽입, 수정 (0) | 2021.07.21 |
Express & MongoDB - 데이터 추가, 조회 (0) | 2021.07.20 |
Express & MongoDB - 몽고디비의 개념과 설치 (0) | 2021.07.20 |
Express & MongoDB - Intro (0) | 2021.07.19 |