[NODE.JS] MONGO DB 연동하기 (FEAT. EXPRESS & MONGOOSE )

devCecy·2022년 3월 22일
5

nodeJs

목록 보기
1/7

서버를 연동해서 진행해보고 싶은 프로젝트가 생겼다. 그래서 간단하게 서버를 만들어보려고한다.

node.js는 웹브라우저에서만 사용되던 javascript를 웹 외부에서도 실행할 수 있는 환경을 제공해준다. 그래서 node.js를 통해 서버를 생성할 수 있게 되는것이다. javascript 하나의 언어로 웹프론트와과 웹서버 모두를 만들 수 있기 때문에 많이 사용되고있다. 사실, 나도 그래서 선택했다.

node.js를 통해 웹 서버를 생성하기 위해서는 express 라는 node 웹 프레임워크를 설치해주면 된다.

실제 데이터를 저장할 곳은 Mongo DB로 MongoDB는 NoSQL(관계형 데이터베이스가 아닌 SQL) 데이터베이스다.

mongoose는 node.js와 Mongo DB를 연동해주는 라이브러리이다.

이제, node.js와 Mongo DB를 연동해보자.

Mongo DB 생성

  1. Mongo DB 사이트에 접속한뒤, 아이디가 없다면 회원가입 후 로그인 한다.

  2. 로그인 후 Create 버튼을 클릭해주면,

  3. Create New Cluster페이지로 넘어간다. 나는 AWS를 사용할거기 때문에 AWS선택! 다른 클라우드를 사용할 예정이라면 그걸 선택하면 된다.

  4. 서울은 FREE TIER가 지원되지 않기 때문에 가장 가까운 도쿄로 선택해 주었다.

5.M10 을 선택해준다. 이 상태로 최종 create을 해주면 1~5분 뒤 cluster가 생성된다.

6.좌측 메뉴에서 Database를 클릭해보자. 아직 cluster가 생성중이라면 생성중 안내가 나올것이고, 완료되면 아래와 같은화면을 볼 수 있다.

  1. Connect를 클릭해준다.

  2. 1번의 Add Your Current IP Address를 클릭하면 이미 ip주소가 입력되어있을 것이다. 그럼 add 버튼을 눌러주기만 하면된다. 그리고 나는 User를 이미 입력해주어서 입력칸이 안나오는데, 2번에 username과 password를 입력해 주면된다. (추후 앱 연결에 필요하기 때문에 꼭 기억할것!)

  1. choose a connection method를 클릭하여 다음 스텝으로 넘어간다. 그리고 두번째 Connect your aplication을 클릭해준다.

  2. 2번의 코드를 복사한다!

  3. MongoDB와 나의 app을 연결하기 위해 먼저 vscode에디터를 사용하여 프로젝트를 하나 생성해 놓았다.

  • express를 설치해준다. npm install express
  • mongoose를 설치해준다. npm install mongoose
  • Index.js에 아래와 같이 작성해준다.
  • mongoose.connect() 안쪽에는 MongoDB에서 복사해두었던 코드를 붙여넣어주면된다. 그리고 <password>부분에 역시나 MongoDB에서 지정해 주었던 비밀번호를 입력해준다. <>괄호 모두 제거하고 비밀번호만 넣어주어야한다!
  • 몽구스의 useNewUrlPaser등의 옵션들은 에러 생성으로 잠시 주석 처리를 해놓았다.
 // index.js
const express = require('express'); // express 임포트
const app = express(); // app생성
const port = 5000;

app.get('/', function (req, res) {
  res.send('hello world!!');
});

app.listen(port, () => console.log(`${port}포트입니다.`));

// 몽구스 연결
const mongoose = require('mongoose');
mongoose
  .connect(
    'mongodb+srv://devCecy:<password>@devcecy.dprgf.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
    {
      // useNewUrlPaser: true,
      // useUnifiedTofology: true,
      // useCreateIndex: true,
      // useFindAndModify: false,
    }
  )
  .then(() => console.log('MongoDB conected'))
  .catch((err) => {
    console.log(err);
  });
  
  1. npm run start로 실행해주면 콘솔에 아래와같이 찍히는 걸 볼 수있다. (물론, package.json의 script에 "start": "node index.js"를 추가해주어야 가능하다.)

나의 앱과 몽고DB 첫 연결 성공!

Mongoose 옵션 에러?

서칭해보니 몽구스6.0이상의 버전에서는 지원하지 않는 옵션이라고 한다. 그래서 삭제해주었다!

John Ahn님의 유튜브 강의를 통해 공부하며 글을 작성했습니다😊

profile
🌈그림으로 기록하는 개발자🌈

1개의 댓글

comment-user-thumbnail
2023년 6월 26일

감사합니다 덕분에 문제 해결했습니다

답글 달기