몽구스 스키마 가이드
8842 단어 nodebeginnersjavascript
스키마란 무엇입니까?
위에서 구조와 유효성 검사를 언급했는데 이것이 몽구스 스키마입니다. 페이지에 가입 양식이 있다고 가정해 보겠습니다. 사용자 이름에 특정 문자를 허용하지 않거나 이메일 주소가 데이터베이스에 저장될 때 유효한지 확인하고 싶을 수 있습니다.
이 자습서에서는 프로젝트에 몽구스를 포함하기 위해 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에 데이터를 저장하기 위해 백엔드에 포스트 경로를 만들었습니다. 아래 게시물 경로를 살펴보십시오.
new
의 User
인스턴스를 만들고 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를 구축할 때 사용할 수 있는 훌륭한 도구이며, 무엇이 들어가고 거기에 도착했을 때 저장되는 방법을 완벽하게 제어할 수 있습니다. 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(몽구스 스키마 가이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcarpenter/mongoose-schemas-guide-fh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)