[클론코딩] 유튜브 8일차

Jake_Young·2020년 9월 17일
0
post-thumbnail

💕 진도

[풀스택] 유튜브 클론코딩

3.0~3.4 강의


😁 MongoDB & Mongoose

  • MongoDB는 대표적인 NoSQL DB이다.
  • Mongoose는 Object Data Modeling (ODM)이다.
  • 아래에는 mongodb를 연결하는 db.js 코드를 첨부하였다.
  • model 설정과 관련하여서는 video와 comment를 올려두었다.
  • 외래키는 video.js 맨 아래에 comments로 연결해두었다.
// -----------------------------------------------------구분선
// db.js
  
import mongoose from "mongoose";
import dotenv from "dotenv";
dotenv.config();

mongoose.connect(
  process.env.MONGO_URL,
  {
    useNewUrlParser: true,
    useFindAndModify: false
  }
);

const db = mongoose.connection;

const handleOpen = () => console.log("✅  Connected to DB");
const handleError = error => console.log(`❌ Error on DB Connection:${error}`);

db.once("open", handleOpen);
db.on("error", handleError);

// -----------------------------------------------------구분선
// models/Video.js
import mongoose from "mongoose";

const VideoSchema = new mongoose.Schema({
  fileUrl: {
    type: String,
    required: "File URL is required"
  },
  title: {
    type: String,
    required: "Tilte is required"
  },
  description: String,
  views: {
    type: Number,
    default: 0
  },
  createdAt: {
    type: Date,
    default: Date.now
  },
  comments: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: "Comment"
    }
  ]
});

const model = mongoose.model("Video", VideoSchema);
export default model;

// -----------------------------------------------------구분선
// models/Comment.js
  
import mongoose from "mongoose";

const CommentSchema = new mongoose.Schema({
  text: {
    type: String,
    required: "Text is required"
  },
  createdAt: {
    type: Date,
    default: Date.now
  }
});

const model = mongoose.model("Comment", CommentSchema);
export default model;

// -----------------------------------------------------구분선
// index.js
import "./db";
import app from "./app";
import dotenv from "dotenv";
dotenv.config();
import "./models/Video";

const PORT = process.env.PORT || 4000;

const handleListening = () =>
  console.log(`✅  Listening on: http://localhost:${PORT}`);

app.listen(PORT, handleListening);
profile
자바스크립트와 파이썬 그리고 컴퓨터와 네트워크

0개의 댓글