wetube 6.5 ~ 6.14

이주왕·2022년 2월 13일
0

Node Js

목록 보기
6/10

Mongoose

Node js와 Mongo db를 Javascript 언어로 연결할 수 있게 해준다.
Mongo db를 express와 연결시켜주기 위해서는 db.js 파일을 생성한 후 아래에 나올 init.js에도 파일 자체를 import 해주어야 한다.

import mongoose from "mongoose";
mongoose.connect("mongodb://127.0.0.1:27017/jutube")
const db = mongoose.connection
const handleOpen = () => console.log("Connected to DB")
const handleError = (error) => console.log("DB Error", error)
db.on("error", handleError)
db.once("open", handleOpen)

Video.js

models 폴더의 Video.js 파일은 video들의 data schema를 architect 해준다.
Video.js는 Database를 architect 한다는 부분에서 Django의 model과 비슷하다.

import mongoose from "mongoose"
const videoSchema = new mongoose.Schema({
    title: String,
    description: String,
    createdAt: Date,
    hashtags: [{ type: String }],
    meta: {
        views: Number,
        rating: Number
    }
})
const Video = mongoose.model("Video", videoSchema)
export default Video

Init.js

init.js로 server.js에 있는 import 목록들 중 초기화(재시작)할 때 필요한 것들만 관리를 한다.
Video.js를 init.js에 import 하는 이유는 우선 import를 해야 Video.js의 존재를 다른 파일에도 알릴 수 있고, 그래야 다른 파일에서 바로 import가 가능하기 때문이다.(6.10 6:30)
어떤 파일의 존재를 모든 파일 상에 알리고 싶으면 init.js에 import 하면된다.

Async & Await

async와 await를 사용하면 await가 database를 기다리기 때문에 callback을 사용했을 때와 다르게 코드를 순서대로 실행한다.

export const home = async (req, res) => {
    const videos = await Video.find({})
    return res.render("home", { pageTitle: "Home", videos })
}
profile
Learn more

0개의 댓글

관련 채용 정보