[Node JS] 로그인 회원가입 로그아웃 구현 #1 / MongoDB mongoose 연결 / .env 파일

Onam Kwon·2022년 3월 30일
2

Node JS

목록 보기
3/25

Sign-Up / In / Out implementation

Node JS express, MongoDB, Ajax, JWT 그리고 bcrypt를 사용해 회원가입 및 토큰을 사용한 로그인 유지를 구현했다.

1. Connecting MongoDB with mongoose

mongoose모듈을 이용해 MongoDB에 연결을 할 수 있다.
시작하기 전에 우선 https://www.mongodb.com 에 들어가 회원가입및 cluster를 생성해 주도록 한다. 혹시 이번 튜토리얼이 끝나도 연결에 성공하지 못하면 사이트 왼쪽 메뉴에서 Network Access에 들어가 edit을 누르고 현재 IP주소나 전체 IP접근 허용을 확인하자.

다음은 .env파일을 생성할 것이다. 이 파일에 들어가는 내용은 MongoDB를 사용하려면 로그인 정보가 필요한데 민감한 정보를 따로 보관하려는 목적이다. GitHub에도 실수로 개인정보나 민감한 정보가 올라가지 않게 방지할 수 있다.

MongoDB사이트에서 회원가입을 한 후 [ID]부분과 [Password]부분을 본인의 아이디와 비밀번호로 대체해 준다. []괄호도 없애준후 아이디를 넣어주어야 한다. 아래 텍스트에 본인의 정보를 넣어주면 된다.

SECRET_KEY는 이번 내용과 관련이 없으니 무시해도 됩니다.

MONGO_URI = mongodb+srv://[ID]:[Password]@cluster0.cefr7.mongodb.net/userDB?retryWrites=true&w=majority

터미널에서 아래 커맨드에 본인의 정보를 넣은 후 실행해 주면 .env파일 작업이 완료된다.

본인의 아이디와 비밀번호로 대체한 후 ""쌍따옴표로 감싸주었다.

touch .env
echo >> .env ".env MONGO_URI = mongodb+srv://[ID]:[Password]@cluster0.cefr7.mongodb.net/userDB?retryWrites=true&w=majority"

.env파일을 다 만들었다면 터미널에서 npm으로 mongoose를 설치해준다.

npm install mongoose

사전작업이 끝났다면 db.js파일을 아래와 같이 만들어준다.
db.js파일처럼 따로 만들어 모듈화한 파일들은 디렉토리를 따로 만들어 한곳에 모아주었다.
아래 코드의 const path = require('path');require('dotenv').config({ path: path.resolve(__dirname, '../.env') });.env파일의 경로설정을 위해 필요하다. 만약 본인이 다른 경로를 원한다면 경로설정을 확실히 해주도록 한다.

아래의 process.env.MONGO_URI변수가 방금 .env파일에 넣어둔 MONGO_URI변수다.
이런식으로 .env파일을 따로 관리하면 민감한 정보를 관리하기 더 편하다.

//db.js
const mongoose = require('mongoose');

const path = require('path');
// calling enviroment variable from .env file
require('dotenv').config({ path: path.resolve(__dirname, '../.env') }); 
exports.db = () => {
    mongoose.connect(
        process.env.MONGO_URI,
        {
          // useNewUrlPaser: true,
          // useUnifiedTofology: true,
          // useCreateIndex: true,
          // useFindAndModify: false,
        }
      )
      .then(() => console.log('MongoDB conected...'))
      .catch((err) => {
        console.log(err);
    });   
}

위의 db.js를 다 만들었다면 server.js파일에 아래의 코드를 추가해주고 저장해주면 mongoose를 활용한 MongoDB연결이 완성된다.

참고로 저는 module폴더를 하나 만들어 db.js파일을 따로 보관했기 때문에 ./module/db경로를 사용합니다.

const { db } = require('./module/db');

db();

추가해주고 저장해주면 아래와 같이 서버가 시작됨과 동시에 MongoDB에 연결되면 연결확인 문구가 출력됨을 확인할 수 있다.

profile
권오남 / Onam Kwon

0개의 댓글