SeungJun Baek

readme 수정, 파일 정리

......@@ -4,9 +4,33 @@
영화 사이트 만들기
사용 API: https://yts.mx/
사용 API: https://www.themoviedb.org/
사용 데이터베이스 mongo DB
📢사용 API 기능📢
1. Trending
한 주 또는 한달 동안의 유행 영화 정보를 받아올 수 있다
2. Discover
설정한 변수들에 해당하는 영화의 목록을 가져다준다
이번 프로젝트에서는 평점, 장르, 년도를 기반으로 결과값을 반환받음
3. Genre
각 장르별 설정된 ID값을 얻을 수 있다
4. POSTER
영화의 ID값을 통해 영화 포스터 이미지를 얻을 수 있다
5. Detail information
MovieDB내에 있는 영화의 자세한 정보가 담긴 페이지
사용 데이터베이스(예비) mongo DB
📢 devDependencies 📢
......@@ -28,22 +52,13 @@ babel을 통해 내 최신js 코드를 호환성이 좋은 구 버전 js코드
- [] / -> 홈 페이지
- [] /join -> 회원가입
- [] /login -> 로그인
- [] /login -> 로그인
- [] /logout -> 로그아웃
- [] /movies: 영화 보여주는 페이지
- [] /movies/:id 영화 상세정보
- [] /movies/:id 에 정규표현식 적용하기
- [] /movies/:id 에 정규표현식 적용하기
- [] /movies/discover 년도, 장르, 평점를 기반으로한 영화 검색
- [] /users/:id 사용자 상세정보 -
- [] /users/likemovie 사용자가 좋아하는 영화 목록
pug뷰 만들기
컨트롤러만들기
영화 디비 활용하기
몽고 db 쓰기
\ No newline at end of file
- [] /users/github/start Git hub OAuth를 기반으로한 로그인 구현
- [] /users/github/finish OAuth를 기반으로 전달받은 데이터를 처리하기 위한 Callback funcion
\ No newline at end of file
......
......@@ -57,9 +57,7 @@ export const postLogin = async (req,res) =>
{
const PAGETITLE = "Login"
const {username,password} = req.body;
console.log(username,password)
const user = await User.findOne({username});
console.log(user)
if(!user){
return res.status(400).render("login",{pageTitle:PAGETITLE,error:"An account with that username is not found"})
}
......@@ -84,7 +82,6 @@ export const startGithubLogin = (req,res) =>
}
const params = new URLSearchParams(config).toString();
const finalURL = `${baseURL}?${params}`
console.log(finalURL);
return res.redirect(finalURL);
}
......@@ -99,7 +96,6 @@ export const finishGithubLogin = async (req,res) =>
const params = new URLSearchParams(config).toString();
const baseURL = `https://github.com/login/oauth/access_token`;
const finalURL = `${baseURL}?${params}`;
console.log(req.query);
const data = await fetch(finalURL,{
method:"POST",
headers:{
......
import fetch from "node-fetch"
const getMovies = async ()=>{
const BASEURL = `https://yts.mx/api/v2/list_movies.json`;
const movies = await fetch(BASEURL,{
});
console.log(movies);
}
export const showMovies = (req,res) =>{
//getMovies();
res.send("movie home");
}
export const movieInformation = async (req,res)=>{
const {id}= req.params;
......@@ -27,7 +15,6 @@ export const getDiscover = (req, res)=>{
export const postDiscover = async (req, res)=>{
const {year, genre,rating} = req.body
console.log(year,genre,rating)
const KEY= process.env.API_KEY
const genreData = await fetch(`https://api.themoviedb.org/3/genre/movie/list?api_key=${KEY}&language=en-US`)
const genres = await genreData.json()
......@@ -35,7 +22,7 @@ export const postDiscover = async (req, res)=>{
const genreId = target[0].id
const moviesData = await fetch(`
https://api.themoviedb.org/3/discover/movie?api_key=${KEY}&language=en-US&sort_by=popularity.desc&include_adult=false&include_video=false&page=1&year=${year}&vote_average.gte=${rating}&with_genres=28%2C12&with_watch_monetization_types=flatrate`,
https://api.themoviedb.org/3/discover/movie?api_key=${KEY}&language=en-US&sort_by=popularity.desc&include_adult=false&include_video=false&page=1&year=${year}&vote_average.gte=${rating}&with_genres=${genreId}&with_watch_monetization_types=flatrate`,
{
method:"GET"
})
......@@ -43,4 +30,4 @@ export const postDiscover = async (req, res)=>{
const movies = Result.results
console.log(movies)
return res.render(`discoverResult.pug`,{siteTitle:"movie!",movies})
}
}
\ No newline at end of file
......
......@@ -3,7 +3,6 @@ import "./db"
import "../models/User"
import app from "./server";
console.log("hihihihihih")
const PORT = 3000
......
import express from "express";
import { showMovies, movieInformation, getDiscover, postDiscover } from "../controllers/movieController";
import { movieInformation, getDiscover, postDiscover } from "../controllers/movieController";
const movieRouter = express.Router();
movieRouter.get('/',showMovies);
movieRouter.get('/:id(\\d+)', movieInformation);
movieRouter.route('/discover/').get(getDiscover).post(postDiscover)
......
extends layout.pug
include mixins/trending.pug
include mixins/movies.pug
block content
div
......
extends layout.pug
include mixins/trending.pug
include mixins/movies.pug
block content
div
h1=pageTitle
small 이번주에 인기있는 영화들
+trending(movies)
\ No newline at end of file
+movies(movies)
\ No newline at end of file
......
mixin trending(movies)
div
ul
each movie in movies
li
a(href=`/movies/${movie.id}`)=movie.title
\ No newline at end of file
......@@ -4,7 +4,7 @@ header
li
a(href="/") Home
li
a(href="/movies/discover/") Movies
a(href="/movies/discover/") Search Movies
if loggedIn
li
a(href="/logout") logout
......