Develop Dairy/JavaScript, React

MongoDB와 JavaScript와 연결해보자 (with dotenv)

개발자_옹이양 2019. 2. 10. 10:45

선행사항

2019/01/29 - [dhddldid(옹이양)] - MognDB Community Server 설치 및 환경설정 접속완료까지





Mongo를 JavaScript와 연결하는데 두가지가 있습니다.


1. MongoDB

2. JavaScript의 NodeJS


필요 자바스크립트에서 MongoDB와 연결하려면 Adapater를 통해야한다. 

Javascript 코드를 작성하고 싶으면 MongoDB로부터 instruction 을 받아야 하는데 

Mongoose라는 것이 도움을줍니다.


mongoosejs는 NodeJS를 위한 Object Modeling이며 설치하러가봅시다.

https://mongoosejs.com/


설치는 간단합니다.

npm install mongoose



db.js라는 파일을만들어서 

mongoose.connect("mongodb://localhost:27017/dh-tube");

여기서 우리한테 요청하는건 string으로 된 Database, 어디에 Database가 저장되어 있는지 알려주는 기능


여기서 좀더 추가 해 보자면

mongoose.connect("mongodb://localhost:27017/dh-tube",
{
useNewUrlParser: true,
useFindAndModify: false
});

최근의 Mongoose는 이렇게 Configuration을 보낼 수있다.

내가 MongoDB를 사용할때마다 moongse가 설정을 보내준다. 

useNew...는 사용을 하는것으로

useFindAnd...는 사용하지않는걸로




총코드를보면 

import mongoose from "mongoose";

mongoose.connect("mongodb://localhost:27017/dh-tube", {
useNewUrlParser: true,
useFindAndModify: false
});

//MongoDB와의 연결을 db로 저장
const db = mongoose.connection;

const handleOpen = () => console.log("✅Connected to DB");
const handleError = () => console.log(`❌ Error on DB Connection:${error}`);

db.once("open", handleOpen);
db.on("eroor", handleError);

같은 코드가됩니다. 


이파일의 이름은 db.js이고 


다른쪽에서 

import db.js를 하면 콘솔창에 표시가되는걸 볼 수 있습니다.







또한 db가어디에 저장되는지 숨기기위하여.


dotenv를 설치합니다 

npm install dotenv

가끔 어떤 부분을 숨겨놓고 싶을 수 있기 때문인데

어디에 DB가 저장되는것을 숨기고 싶을때 사용하게된다.



dotenv 구성방법


env 파일 생성


env 파일에서 

MONGO_URL="mongodb://localhost:27017/dh-tube"
PORT=4000

로 적고



db를 연결하는 파일 db.js에서 

import dotenv from "dotenv";
dotenv.config();

적어서 접근하는데 

dotenv.config라는 함수로 .env 파일 안에 있는 정보를 불러 올 수있으며

찾은 모든 variable들을 process.env.key에 저장한다.


기존


mongoose.connect("mongodb://localhost:27017/dh-tube", {
useNewUrlParser: true,
useFindAndModify: false
});

에서 밑과같이바뀌어서 

mongoose.connect(process.env.MONGO_URL, {
useNewUrlParser: true,
useFindAndModify: false
});

와같이 정보를 숨길수 있다.




완성