반응형
요즘 MERN Stack에 대해 공부하면서 MongoDb를 이용해서 간단히 프로젝트를 하나 만들려고 한다. 이전에 오라클이나 MySql은 써본 경험이 있었지만 MongoDb는 처음이기에 nodejs로 MongoDb를 내 어플리케이션에 연결하는 과정을 정리해보자.
우선 파일구조를 프론트(client), 백(server) 폴더로 나누어서 진행해보자.
아무것도 없는 빈 폴더에 각각 client, server 폴더를 만들어 준 뒤 필요한 필요한 패키지들을 각각의 폴더에 설치해준다.
client 폴더에는 우선
npx create-react-app // 우선 리액트 앱 환경 설치
npm install axios react-filebase64 redux redux-thunk + ... // 본인이 필요한 패키지 설치
server 폴더에는
npm init -y // package.json 파일 초기화
npm install body-parser cors express mongoose nodemon // 요 애들은 거의 고정식으로 쓰이니 참고
client 쪽 패키지보단 server 쪽은 거의 자주 쓰이는 것들이니 습관화 들이면 되겠다.
이제 기본 세팅들은 마쳤고 몽고디비로 넘어가서 필요한 작업들을 해주자.
mongodb.com/cloud/atlas 주소로 들어가면
스타트를 누른뒤에 구글아이디 연동을 해서 로그인을 하든 새로 아이디를 만들든 접속을 하게 되면 아래 창이 뜬다.
여기에서 가운데 create organization 를 누른뒤에 create project 버튼을 누른다. 프로젝트 까지 안내에 따라 만들게 되면 드디어 Cluster를 만들 수 있게 된다.
오른쪽 무료 버전을 선택하면
위와 같은 화면이 뜨고 왼쪽 카테고리 메뉴에서 Database Access 와 Network Aceess 에서 사용자 계정 추가와 현재 아이피 기준으로 호스팅 하게 설정 해 줄 수 있다. 이제 다시 clustes 카테고리 안에 가운데 connect 버튼을 눌러 url 을 따오자.
이제 server 폴더 안에 index.js 파일로 가서
import express from 'express' // 새로운 버전이 나오면서 require 가 아닌 import 로도 끌어다 쓸 수 있다.
import bodyParser from 'body-parser'
import mongoose from 'mongoose'
import cors from 'cors'
const app = express();
app.use(bodyParser.json({limit: "30mb", extended: true}));
app.use(bodyParser.urlencoded({limit:"30mb", extended:true}));
app.use(cors());
const CONNECTION_URL = 'mongodb+srv://devilfront:{각자 설정한 비밀먼홍~}@cluster0.270lh.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';
const PORT = process.env.PORT || 5000;
mongoose.connect(CONNECTION_URL, {useNewUrlParser: true, useUnifiedTopology:true})
.then(() => app.listen(PORT, () => console.log(`Server running on port : ${PORT}`)))
.catch((error) => console.log(error.message));
mongoose.set('useFindAndModify', false);
이렇게 작성을 하구
실행언어 바꾸고 type 객체 하나 추가 한뒤 실행시키면
잘 연결 됬당.
끝!
반응형
'Node.js' 카테고리의 다른 글
Nodejs Middleware 구현 하기 ( next() ) (0) | 2021.08.22 |
---|---|
Nodejs Express.js 란 (0) | 2021.08.20 |
Nodejs bcrypt 패키지 비밀번호 암호화 (0) | 2021.07.21 |
Nodejs nodemon (0) | 2021.07.15 |
Nodejs body-parser 패키지 (0) | 2021.07.15 |