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

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에 연결되면 연결확인 문구가 출력됨을 확인할 수 있다.
