MongoDB에서 Nodejs 사용

이 튜토리얼에서는 Node.js에서 MongoDB 데이터베이스와 상호작용하는 방법을 보여드리겠습니다.

MongoDB 및 Node.js 사용



MongoDB는 Node.js와 함께 사용되는 가장 인기 있는 데이터베이스 중 하나입니다.

우리는 공식 mongodb npm 패키지를 사용할 것입니다. 작업 중인 Node.js 프로젝트가 이미 있는 경우 다음을 사용하여 설치합니다.

먼저 시스템에 Node.js 버전 12 이상과 호환되는 npm(노드 패키지 관리자) 버전이 있는지 확인하세요. 더 많은 설치를 위해 공식 Node.js 웹사이트로 이동하세요.

이 작업이 완료되면 새 새 폴더를 만들고 명령을 실행하십시오.

npm init 


빈 nodejs 프로젝트를 초기화합니다. 그런 다음 아래 명령을 사용하여 MongoDB를 설치합니다.

npm install mongodb


웹 애플리케이션에서 MongoDB를 사용하려면 먼저 애플리케이션을 MongoDB의 모든 기능을 사용할 수 있는 MongoDb 서버와 연결해야 합니다.

몽고DB에 연결



mongodb 패키지가 필요하고 여기에서 MongoClient 객체를 가져옵니다. 새 파일 server.js를 만들어 Express.js 서버를 시작합니다. mongoose를 로드하고 다음 코드를 server.js에 추가하여 표현합니다.

const express = require("express");
const mongoose = require("mongoose");
const Router = require("./routes")

const app = express();

app.use(express.json());


그런 다음 mongoose.connect() 함수를 사용하여 로컬 MongoDB 인스턴스에 연결합니다.

서버.js

mongoose.connect('mongodb://localhost:27017/usersdb',
  {
    useNewUrlParser: true,
    useFindAndModify: false,
    useUnifiedTopology: true
  }
);


MongoDB atlas에 대한 연결을 만들려면 새 MongoDB 클러스터를 만들어야 합니다.

MongoDb atlas 웹 사이트를 방문하여 아래 단계를 따르십시오.
  • MongoDb Atlas에서 클러스터 탭을 열고 CONNECT를 클릭합니다.
  • 응용 프로그램 연결을 선택하고 드라이버로 Node.js를 선택합니다.
  • 연결 문자열을 복사합니다.

  • 현재 연결 상태에서 다음 변수를 생성하고 실제 자격 증명을 사용하여 해당 값을 바꿉니다.

    서버.js

    const username = "<mongodb username>";
    const password = "<password>";
    const cluster = "<cluster name>";
    const dbname = "myFirstDatabase";
    
    mongoose.connect(
      `mongodb+srv://${username}:${password}@${cluster}.mongodb.net/${dbname}?retryWrites=true&w=majority`, 
      {
        useNewUrlParser: true,
        useFindAndModify: false,
        useUnifiedTopology: true
      }
    );
    


    모든 것이 예상대로 작동하는지 확인하려면 mongoose.connect() 바로 아래에 다음 코드를 추가하십시오.

    서버.js

    // ...
    const db = mongoose.connection;
    db.on("error", console.error.bind(console, "connection error: "));
    db.once("open", function () {
      console.log("Connected successfully");
    });
    


    그런 다음 포트 3000을 수신 대기하도록 앱을 설정합니다.

    이렇게 하면 모든 Nodejs 애플리케이션을 MongoDB와 연결할 수 있습니다. 많은 유연성을 손에 쥐고 사용하기 쉽습니다.

    이제 mongoDB에 데이터를 업로드하려면 스키마라는 것을 만들어야 합니다. 데이터가 어떻게 보이는지에 대한 기본 레이아웃입니다.

    스키마 생성



    이제 애플리케이션의 컬렉션 스키마를 정의해 보겠습니다.

    다른 파일 models.js를 만들고 다음 코드를 추가합니다.

    models.js

    const mongoose = require("mongoose");
    
    const UserSchema = new mongoose.Schema({
      name: {
        type: String,
        required: true,
      },
      age: {
        type: Number,
        default: 0,
      },
    });
    
    const User = mongoose.model("User", UserSchema);
    
    module.exports = User;
    


    mongoose.Schema() 메서드를 사용하여 스키마 UserSchema를 생성합니다. 스키마는 요청에서 보낸 이름 및 나이 필드를 수집합니다.

    MongoDB에 데이터를 보내는 POST 끝점



    새 파일 route.js를 만듭니다. 이 파일은 앱의 끝점을 정의합니다.

    다음 코드를 추가하여 3단계에서 생성한 스키마와 익스프레스를 로드합니다.

    route.js

    const express = require("express");
    const userModel = require("./models");
    const app = express();
    


    그런 다음 다음 코드를 추가하여 POST 끝점을 만듭니다.

    route.js

    // ...
    app.post("/add_user", async (request, response) => {
        const user = new userModel(request.body);
    
        try {
          await user.save();
          response.send(user);
        } catch (error) {
          response.status(500).send(error);
        }
    });
    


    새 사용자를 데이터베이스에 추가하기 위해 경로/add_user를 생성합니다. const user = new userModel(request.body); 행을 사용하여 데이터베이스에 저장할 콘텐츠를 구문 분석합니다.

    그런 다음 try/catch 블록을 사용하여 .save() 메서드를 사용하여 객체를 데이터베이스에 저장합니다.

    async/await를 사용하여 요소를 찾으려면




    const find = async () => {
      try {
        const item = await collection.findOne({name: 'Togo'})
      } catch(err => {
      console.error(err)
      })
    }
    
    find()
    


    결론



    Nodejs 애플리케이션을 MongoDB와 연결하는 방법을 살펴보았습니다. 또한 컬렉션에 대한 MongoDB 체계 및 POST 요청을 설정하는 방법도 살펴보았습니다.

    좋은 웹페이지 즐겨찾기