[mongoDB] Mac Big Sur에서 Node.js + express + mongoDB 설치 및 연동

빵뭉이·2022년 3월 6일
0

mongoDB 설치하기

  1. mongoDB 홈페이지에 가서 하단 이미지 경로로 들어가서 Mac버전으로 다운 받는다.
  2. 다 받은 후 다운로드 폴더에 들어가서 tar 파일을 더블클릭해 압축을 풀어준다.
  3. 다운로드 폴더에서 command + shift ⬆️ + g 버튼을 누르면 폴더를 이동할 수 있는 창이 뜬다. 여기에 /usr/local/ 입력 후 이동 클릭
  4. 그 폴더에서 mongodb 라는 새로운 폴더를 만들어준다. 이 mongodb라는 폴더 안에 2번에서 압축을 풀어놨던 파일을 넣어줄 것이다.
  5. 다 넣었으면 이제 Finder에서 Macintosh HD로 들어가서 사용자로 들어가준다.
  6. 사용자 폴더로 들어가면 공유 폴더와 사용자가 설정해둔 이름의 폴더 이렇게 두 개가 있을 것이다. 거기서 사용자가 설정해 둔 이름의 폴더를 클릭해준다. 그 안에 data라는 폴더를 만들어주고, data 폴더 안에 db 라는 폴더를 또 만들어준다.
  7. 이제 사전준비는 다 마쳤다. 터미널에서 path를 설정해 줄 차례다. 터미널을 일단 열고, 하단 명령어를 입력하자!
vi ~/.bash_profile
  1. 그럼 창이 열리는데, i를 눌러 입력할 수 있게 만들고 하단 문장을 입력한다. 다 입력했으면 esc 키를 누르고 :wq를 입력하면 저장 후 강제종료가 된다.
export MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin
  1. 이제 path 설정을 해줄 때가 되었다! {username}에는 자신의 폴더명을 써주면 된다.
mongod --dbpath=/Users/{username}/data/db
  1. 9를 하고나면 이런 창이 뜬다. 이걸 해결하는 방법은 최상단 상태바에서 애플로고 -> 시스템 환경설정 -> 보안 및 개인 정보 보호를 누르면 이런 창이 뜬다. 여기서 확인 없이 허용 클릭해준다.
  2. 이렇게 설정해주고 9를 다시 해주면, 열기라는 선택지가 나오는데 그 버튼 클릭해주면 터미널이 화려하게 움직이기 시작한다.
  3. 설치가 잘 되었는지 확인해보기 위해 터미널에서 mongo -version 명령어를 입력해주자! 명령어를 입력했을 때 하단 이미지와 같이 뜬다면 잘 설치된 것이다!

mongoDB 연동하기

  1. 이제 node.js와 express, mongodb 연동을 해야 할 차례다. 먼저, vscode를 열고 React를 가지고 있던 프로젝트 폴더 경로로 터미널을 열어준다. 그런 뒤 yarn add mongoose 입력하여 몽구스를 깔아준다.
  2. server.ts 파일에 빨간 네모 쳐진 부분을 추가해준다.
  • server/server.ts
import express from 'express';

const app = express();
const test = require("./router/test");
const db = require("./mongodb.js") // db 불러오기

db(); // 실행
app.use("/api", test);

const port: number = 5000;
app.listen(port, () => console.log(`${port}`));
  1. server.ts와 같은 형제관계에 mongodb.js라는 파일을 생성한 뒤에 하단 소스를 복붙하여 넣어준다.
const mongoose = require('mongoose');

module.exports = () => {
    function connect(){
        mongoose.connect('mongodb://localhost:27017', function(err){
            if (err) {
                console.error('mongodb connection error', err);
            }
            console.log('mongodb connected');
        });
    }
    
    connect();
    getSchema();
    mongoose.connection.on('disconnected', connect);
    //require('./user.js'); // user.js는 나중에 만듭니다.

    function getSchema(){
        // Schema 생성. (혹시 스키마에 대한 개념이 없다면, 입력될 데이터의 타입이 정의된 DB 설계도 라고 생각하면 됩니다.)
        const student = mongoose.Schema({
            name : 'string',
            address : 'string',
            age : 'number'
        });

        // 정의된 스키마를 객체처럼 사용할 수 있도록 model() 함수로 컴파일
        const Student = mongoose.model('Schema', student);
        // Student 객체를 new 로 생성해서 값을 입력
        const newStudent = new Student({name:'Hong Gil Dong', address:'서울시 강남구 논현동', age:'22'});
        // 데이터 저장
        newStudent.save(function(error, data){
            if(error){
                console.log(error);
            }else{
                console.log('Saved!', data)
            }
        });

        // Student 레퍼런스 전체 데이터 가져오기
        Student.find(function(error, students){
            console.log('--- Read all ---');
            if(error){
                console.log(error);
            }else{
                console.log(students);
            }
        })
    };
};
  1. 다 저장한 뒤, 프로젝트 폴더에서 터미널 열고 yarn start를 입력한다.
  2. mongodb connected라는 말과 데이터들이 뜨면 연결 성공한 것이다!
profile
휘발방지

0개의 댓글

관련 채용 정보