본문 바로가기

E-commerce Vanila JS [7편] 몽고DB 연결

by Recstasy 2021. 12. 9.

1 몽고DB설치

- 몽고DB설치 경로(윈도우용)

https://www.mongodb.com/try/download/enterprise

 

MongoDB Enterprise Server Download

Download MongoDB Enterprise Server, which provides advanced security and performance options for the most demanding apps. Use for free for development.

www.mongodb.com

 

* 몽고DB windows 설치법 - '히진쓰의 서버사이드 기술블로그' -

 

[MongoDB] Windows에 MongoDB 설치하기

MongoDB 몽고 DB는 Document 지향 데이터베이스 시스템으로 대표적인 NoSQL DB입니다. 오늘은 그러한 MongoDB를 Winodws에 설치 방법에 대해 포스팅을 해보려고 합니다 1. 설치 하기 설치 링크 : www.mongodb.com..

khj93.tistory.com

 

 

1) 몽구스 npm 설치하기

- root\> npm install --save mongoose

 

2) server.js 수정하기

 


    // 중략...
    import mongoose from 'mongoose';
    import data from './data';
    import config from './config';

    dbMain()
    .then(()=>{
        console.log('Conneted to mongodb.')
    })
    .catch( err => console.log(err));

    async function dbMain(){
        await mongoose
            .connect(config.MONGODB_URL, {
                useNewUrlParser : true,
                useUnifiedTopology: true,
                 // useCreateIndex: true,
        })
    }

    // 중략...

[ root\backend\server.js ]

 

 

3) config.js 생성하기

- config.js에는 몽고DB와 관련된 환경변수 데이터가 저장된다. 클라우드 서버일 경우에는 보안key와 관리자 비밀번호가 저장되는데, 보안을 위해서는 dotenv같은 모듈을 설치해서 따로 관리해줘야 한다.

 


 
import dotenv from 'dotenv';
 
  dotenv.config();
 
  export default{
      MONGODB_URL: process.env.MONGODB_URL
  }

[ root\backend\config.js ]

 

 

4) dotenv설치하기

- root\> npm install --save dotenv

 

dotenv 설치

 

 

5) .env생성하기

- dotenv모듈을 설치했다면, root(최상단)폴더 바로 아래에 .env파일을 생성해준다.

- 사용할 DB명을 아래와 같이 지정한 후에 몽고DB서버를 실행한다면, 자동으로 해당 이름으로 된 DB가 생성된다. 

 

root\.env

 

 

6) 서버 실행하기

- 서버를 재실행한다.

- root\> npm start 

 

서버 재실행

 

 

 

 

 

 

 


2 DB스키마 생성

1) models폴더 생성

- root\backend\models\

 

 

2) userModel.js 생성

- 사용자 스키마를 생성한다. 

 


    import
 mongoose from 'mongoose';

    const userSchema = new mongoose.Schema({
        name: { type: String, required: true },
        email: {
            type: String, required: true, index: true, unique: true 
        },
        password: { type: String, required: true},
        isAdmin: {type: Boolean, required: true, default: false},
    });

    const User = mongoose.model('User', userSchema);
    export default User;

[ root\backend\models\userModel.js ]

 

 

3) routers폴더 생성

- root\backend\routers 폴더 생성

 

 

4) userRouter.js 생성

- userRouter.js에 관리자DB가 생성되는지 테스트 해보자.

 


    import
 express from 'express'
    import User from '../models/userModel';

    const userRouter = express.Router();

    userRouter.get("/createadmin", async(req, res) => {
        try {
            const user = new User({
                name: 'admin',
                email: 'blogtest@gmail.com',
                password: 'blogtest@',
            });
            const createUser = await user.save();
            res.send(createUser);
        } catch(err){
            res.status(500).send({ message: err.message })
        }
    });

    export default userRouter;

[ root\backend\routers\userRouter.js ]

 

 

5) 서버 실행

- 주소창에 'localhost:5000/api/users/createadmin'을 입력해보자. 관리자DB가 생성되었다면 성공이다.

 

관리자DB생성 테스트

 

 

 

 

 

[ root\backend\server.js ]

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글

최신글 전체

이미지
제목
글쓴이
등록일