본문 바로가기

분류 전체보기

(157)
User(사용자) 만들기 새로운 스키마가 필요해졌다. 사용자는 영상과는 다른 정보 이므로 새로운 스키마를 만들어준다. import mongoose from "mongoose"; const userSchema = new mongoose.Schema({ email: { type: String, required: true, unique: true }, username: { type: String, required: true, unique: true }, password: { type: String, required: true }, name: { type: String, required: true }, location: String, }); const User = mongoose.model("User", userSchema); expo..
Search 페이지 검색기능을 하는 페이지를 만들어보자. 일단 라우터를 만들어야한다. 검색기능은 globalRouter에 해당되므로, globalRouter.get("/search",search)를 작성해준다. 그리고 해당 페이지를 화면에 띄워야하므로, 템플릿을 만들어준다. search.pug 파일을 만들고 아래와 같이 작성한다. extends base.pug block content form(method="GET") input(placeholder="제목을 통해 검색하세요!",type="text",name="keyword") input(type="submit" , value="검색") 검색 페이지에서는 백엔드로 요청 보낼 것이 딱히 없기 때문에, method를 get으로 사용해준다. 사용자가 input에 입력하는 값은 u..
영상 수정하기 extends base.pug block content h4 영상을 수정해보세요! form(method="POST") input(name="title", placeholder="Video Title" ,value=video.title,required) input(placeholder="영상 설명을 해주세요." , required,type="text",name="description",value=video.description) input(placeholder="해시태그, 여러개를 콤마로 구분하여 작성해보세요." , required,type="text",name="hashtags",value=video.hashtags.join()) input(type="submit", value="Save") 일단 영상수..
Video 만들기 이제 실제로 db에 들어갈 영상을 만들어보자. 일단 영상제목 뿐만 아니라, 영상 설명, 해시태그까지 입력할 수 있는 input을 업로드 페이지에 추가한다. 이때 input의 name은 모두 달라야 한다. extends base.pug block content form(method="POST") input(placeholder="영상 제목" , required,type="text",name="uploadTitle") input(placeholder="영상 설명" , required,type="text",name="description") input(placeholder="해시태그, 여러개 작성이 가능해요." , required,type="text",name="hashtags") input(type="sub..
DB 사용하기(callback, promise) mongoose는 DB를 움직이게끔 만드는 함수를 우리에게 제공한다. 첫번째로, 홈페이지가 로드 되었을때 영상을 찾는 함수가 있다. 우리의 영상 객체는 Video이므로 코드는 다음과 같다. 하지만 아직 코드는 실제로 영상을 찾는 기능을 하지는 않는다. export const home = (req, res) => { console.log("첫번째"); Video.find({}, (error, videos) => { console.log("두번째"); }); console.log("세번째"); return res.render("home", { pageTitle: "Home", videos: [] }); }; Video.find 는 callback함수를 호출한다. 여기서 callback 함수의 특징을 알 수 ..
DB Schema 몽고디비를 사용하면서, 스키마라는것이 필요하다. 이는 데이터가 어떠한 형식을 가질것이다 라고 미리 정의 해 두는것을 말한다. 코드는 다음과 같다. 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; 우리 프로젝트에서 사용하게 될 영상(데이터)의 형식을 정의해주고있다...
Mongo에 연결하기 mongoose는 우리의 node.js와 mongoDB를 연결해주는 다리 역할을 한다. MongoDB를 연결하는 우리 컴퓨터에 연결하는 방법은 다음과 같다. import mongoose from "mongoose"; mongoose.connect("mongodb://127.0.0.1:27017/kitube"); const db = mongoose.connection; const handleOpen = () => console.log("Connected to DB!"); db.on("error", (error) => console.log("DB Error", error)); db.once("open", handleOpen); 이런 코드를 가지는 db.js 파일을 만들고 server.js 파일에서 impor..
MongoDB & Mongoose 몽고디비 다운로드 & 몽구스 연결(?) 방법 정리 1. xcode-select --install 을 터미널에 입력 2. Homebrew 다운로드 위해 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) 터미널에 입력한다. 3. eval $(/opt/homebrew/bin/brew shellenv) 을 터미널에 입력. 4. brew tap mongodb/brew 터미널에 입력. 5. brew install mongodb-community@6.0 을 입력. 이때 숫자는 버전이므로 달라질 수 있다. 6. mongod 입력후에 mongosh 입력하여 몽고쉘로 들어가지는 지 확인!!!!!!!!!!..