몽구스 스키마 가이드

Mongoose는 Node.js용 객체 데이터 모델러(ODM)입니다. MongoDB 데이터베이스와 상호 작용하는 데 도움이 되는 간단한 유효성 검사 및 쿼리 API를 제공합니다. 몽구스를 조직자로 생각하면 클라이언트에서 데이터가 반환되면 몽구스가 모델(스키마)을 기반으로 데이터를 검증하고 구조화합니다. 데이터베이스에 어떤 데이터가 어떻게 저장되고 있는지 항상 알 수 있습니다. 한 가지 예를 살펴보겠습니다.

스키마란 무엇입니까?



위에서 구조와 유효성 검사를 언급했는데 이것이 몽구스 스키마입니다. 페이지에 가입 양식이 있다고 가정해 보겠습니다. 사용자 이름에 특정 문자를 허용하지 않거나 이메일 주소가 데이터베이스에 저장될 때 유효한지 확인하고 싶을 수 있습니다.

이 자습서에서는 프로젝트에 몽구스를 포함하기 위해 NPM 또는 YARN을 사용하는 방법을 알고 있다고 가정합니다.

먼저 몽구스를 요구하는 것으로 시작합니다.

//import mongoose NPM module
import mongoose from "mongoose";

// Save a reference to the Schema constructor `mongoose.model`
let Schema = mongoose.Schema;


위에서 스키마 생성자mongoose.schema를 사용하고 이를 Schema라는 변수에 저장합니다.

아래에서 new Schema 를 만들고 이름을 UserSchema 로 지정합니다.

const UserSchema = new Schema({
  // `username` must be of type String
  // `username` will trim leading and trailing whitespace before it's saved
  // `username` is a required field and throws a custom error message if not supplied
  username: {
    type: String,
    trim: true,
    required: "Username is Required"
  },
  // `password` must be of type String
  // `password` will trim leading and trailing whitespace before it's saved
  // `password` is a required field and throws a custom error message if not supplied
  // `password` uses a custom validation function to only accept values 6 characters or more
  password: {
    type: String,
    trim: true,
    required: "Password is Required",
    validate: [
      function(input) {
        return input.length >= 6;
      },
      "Password should be longer."
    ]
  },
  // `email` must be of type String
  // `email` must be unique
  // `email` must match the regex pattern below and throws a custom error message if it does not
  email: {
    type: String,
    unique: true,
    match: [/.+@.+\..+/, "Please enter a valid e-mail address"]
  }
});


위에서 우리는 스키마에 데이터를 검증하고 저장하는 방법을 알려줍니다. 우리는 기본적으로 다음 정보가 돌아올 것으로 기대하고 있다고 말하고 있습니다. 사용자 이름은 문자열이어야 하며, 문자열 앞뒤의 모든 공백을 제거하거나 공백으로 제출하려고 하면 오류가 발생합니다.

모델 만들기 및 내보내기




// This creates our model from the above schema, using mongoose's model method
let User = mongoose.model("User", UserSchema);

// Export the User model
module.exports = User;


모델 사용





따라서 프런트 엔드에 간단한 로그인을 만들고 몽구스를 통해 mongoDB에 데이터를 저장하기 위해 백엔드에 포스트 경로를 만들었습니다. 아래 게시물 경로를 살펴보십시오. newUser 인스턴스를 만들고 req.body를 전달합니다. 데이터베이스에 새 문서를 만들고create 클라이언트에게 다시 보내거나user 정보가 유효하지 않은 경우 오류를 보냅니다.

const User = require("./userModel.js");

app.post("/submit", function(req, res) {
         /*req.body {
             username: "mongod", 
             password: "pass123", 
             email: "[email protected]"
            } 
  Create a new user using req.body (this data came from the client)*/
  let user = new User(req.body);

  User.create(user)
    .then(function(dbUser) {
      // If saved successfully, send the the new User document to the client
      res.json(dbUser);
    })
    .catch(function(err) {
      // If an error occurs, send the error to the client
      res.json(err);
    });
});


결론



짜잔, 몽구스 스키마를 생성하고 이를 사용하여 mongoDB에 저장되는 데이터의 유효성을 검사했습니다. 이것은 mongoDB를 구축할 때 사용할 수 있는 훌륭한 도구이며, 무엇이 들어가고 거기에 도착했을 때 저장되는 방법을 완벽하게 제어할 수 있습니다. 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기