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)
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로 server.js에 있는 import 목록들 중 초기화(재시작)할 때 필요한 것들만 관리를 한다.
Video.js를 init.js에 import 하는 이유는 우선 import를 해야 Video.js의 존재를 다른 파일에도 알릴 수 있고, 그래야 다른 파일에서 바로 import가 가능하기 때문이다.(6.10 6:30)
어떤 파일의 존재를 모든 파일 상에 알리고 싶으면 init.js에 import 하면된다.
async와 await를 사용하면 await가 database를 기다리기 때문에 callback을 사용했을 때와 다르게 코드를 순서대로 실행한다.
export const home = async (req, res) => { const videos = await Video.find({}) return res.render("home", { pageTitle: "Home", videos }) }