본문 바로가기
Develop/Node JS

[Node.js] MongoDB 연결하기

by 팅코벨 2022. 2. 13.
728x90

node.js 설치 및 초기설정을 마쳤다면, 서버와 연결할 DB로 Mongo DB를 사용해볼게요!
아직 설치가 안되신 분들은 아래링크를 참고해주셔요!
https://dev-vlog200ok.tistory.com/32

[Node.js] 설치 및 초기설정(express)

node.js 노션도 만드는 중! 블로그에도 열심히.. 옮겨놓도록 하겠어욤🥳 (...라고 100번째 말만하는중ㅎㅎ) 언제까질지는 몰라도 하이팅! 설치 및 초기설정(Express) node.js 설치 https://nodejs.org/ko/ Node.js

dev-vlog200ok.tistory.com


몽고DB연결을 위한 대략적인 로드맵은 아래와 같습니다.

MongoDB

MongoDB: The Application Data Platform

MongoDB: The Application Data Platform

Get your ideas to market faster with an application data platform built on the leading modern database. MongoDB makes working with data easy.

www.mongodb.com

  1. Cluster만들기


2. user 만들기
user이름과 password를 만들고 꼭 기억해두도록합니다.

3. IP connect
본인 ip주소로 연결


4. connect application
Connect your application 선택


5. 코드에 연결하기

아래 연결을 위한 application code를 복사해서 저장해두세요!

mongodb+srv://arimSeo:<password>@cluster0.im4ee.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

6. Mongoose 설치
: 간단하게 MongoDB를 연결할 수 있는 Object Modeling Tool

$ npm install mongoose --save  //설치
설치되면 자동으로 package.json에 입력되어 확인 가능

  • 앞서 복사해두었던 연결 application code를 아래와 같이 적절한 위치에 넣어주세요
const mongoose = require("mongoose");
mongoose.connect("mongodb+srv://arimSeo:<password>@cluster0.im4ee.mongodb.net/myFirstDatabase?retryWrites=true&w=majority",{
	*//useNewUrlParser: true, useUnindifiedTopology: true, useCreateIndex:true, unFindAndModify: false
	//에러방지(6.0부터는 이미 적용되어있어 필요X- 있으면 오히려 에러남)*
	}).then(() => console.log("MongoDB connected..."))   //연결잘되면
    .catch((err) => console.log(err));     //연결안되면

실행시켜서 연결확인!

$ npm run start



*wifi로 변경 등으로 인해 IP주소가 바뀌면 아래와 같은 에러가 뜰 수 있으니 있으니 주의!
-> MongooseServerSelectionError: Could not connect to any servers in your MongoDB ~
mongoose이용하여 mongoDB연결시 에러.

mongoose이용하여 mongoDB연결시 에러.

{ MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster.~~ ....에러메시지시 해결방법

velog.io

해결법
  • Network Access >> Add IP Address 클릭
  • Add Current IP Address 클릭

++ 모델링(예시)

model: (컬럼)스키마를 감싸주는 역할
Schema: (속성) 정보

-유저모델 만들기

const mongoose = require("mongoose"); //mongoose 모듈 가져오기

//mongoose를 이용해 스키마 생성
const userSchema = mongoose.Schema({
  //필드 작성
  name: {
    type: String,
    maxlength: 50,
  },
  email: {
      type: String,
      trim:true,    //입력한 이메일에 띄어쓰기가 있을경우 없애줌
      unique:1      //이메일 중복x
  },
  password: {
      type:String,
      minlength: 6
  },
  lastname:{
      type:String,
      maxlength: 50
  },
  role: {
      type: Number,
      default: 0    //0이면 사용자, 1이면 관리자
  },
  image: String,
  //토큰으로 유효성 관리
  token:{
      type:String
  },
  //토큰 유효기간
  tokenExp:{
      type:Number
  }
});

//스키마를 모델로 감싸주기 _.model('모델명',스키마이름)
const User = mongoose.model('User',userSchema)
//User모델을 외부에서 쓸 수 있도록 export 하기 
module.exports={ User }


이번시간에는 몽고db를 연결해보고 모델링까지 연습해보았는데요,
다음엔 이어서 client와 server가 어떻게 정보를 요청하고 응답하는지에 대해서 작동시키기 위한 과정을 진행해볼게요!
그롬 안뇽 🚗

728x90
반응형

'Develop > Node JS' 카테고리의 다른 글

[Node.js] 설치 및 초기설정(express)  (0) 2022.02.10

댓글