model이 계속 늘어나면 목록이 계속 늘어남 --> 정리
src > Create init.js file
import db
import model
분리하기
server.js : express , server의 config코드 //서버 관련 코드 어플리케이션 실행 코드
init.js: database, model //import 와 실행
init.js에 const PORT = 4000;
const handleListening = () =>
console.log(`✅ Server listenting on http://localhost:${PORT} 🚀`);
app.listen(PORT, handleListening);
이 부분도 옮김
listen()코드는 연결듣기위해 포트를 열어주는 코드
--> app이 정의되지 않아 여전히 오류
--> server.js에서 app configure처리 다음자리에 export default app
--> init.js에 import app from "./server";
여전히 에러가남 server.js는 app을 export만 할 뿐 작동시키지않음
--> package.json에서 script --> src: server.js를 init.js로 수정
Video model 사용
video Controller에서 첫 줄에 import Video from "../models/video/"
database와 연결
mongoose documentation query object
query object
우리가 사용 할 query video.find()
두 가지 사용법 : callback, promise
database파일을 자바스크립트 파일 외부 에있는 파일이기 때문에 받으려면 기다림이 필요함
callback먼저 사용해보자
예시) app.listen(PORT, handleListening) port 가발생하고 호출되는 handleListening function
{} : search term // 비어있으면 모든 형식을 찾는 다는 뜻
export const home = (req, res) => { //callback은 error,documents를 받는 signature을 가짐
Video.find({}, (error, videos) => { // documents부분은 이름을 변경해도 상관 x
console.log("error", error);
console.log("videos", videos);
});
return res.render("home", { pageTitle: "home", videos: [] });
};
import @@@ 와
import @@ from @@@ 차이점
둘다 파일을 현재파일에 실행한다는 점은 같고
아래는 import한 파일에서 사용한 변수, 객체이름을 그대로 사용함