💕 진도
[풀스택] 유튜브 클론코딩
3.0~3.4 강의
😁 MongoDB & Mongoose
- MongoDB는 대표적인 NoSQL DB이다.
- Mongoose는 Object Data Modeling (ODM)이다.
- 아래에는 mongodb를 연결하는 db.js 코드를 첨부하였다.
- model 설정과 관련하여서는 video와 comment를 올려두었다.
- 외래키는 video.js 맨 아래에 comments로 연결해두었다.
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);
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;
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;
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);