이승윤

feat: Home page db 호출 기능

...@@ -28,7 +28,7 @@ var categori = require('./routes/categori'); ...@@ -28,7 +28,7 @@ var categori = require('./routes/categori');
28 var accounts = require('./routes/accounts'); 28 var accounts = require('./routes/accounts');
29 var auth = require('./routes/auth'); 29 var auth = require('./routes/auth');
30 var connectMongo = require('connect-mongo'); 30 var connectMongo = require('connect-mongo');
31 -var Search = require('./routes/Search'); 31 +var Video = require('./routes/Videos');
32 var MongoStore = connectMongo(session); 32 var MongoStore = connectMongo(session);
33 33
34 app.set('views', path.join(__dirname, 'views')); 34 app.set('views', path.join(__dirname, 'views'));
...@@ -68,7 +68,7 @@ app.use(function (req, res, next) { ...@@ -68,7 +68,7 @@ app.use(function (req, res, next) {
68 }); 68 });
69 69
70 //routes add 70 //routes add
71 -app.use('/', Search); 71 +app.use('/', Video);
72 app.use('/categori', categori); 72 app.use('/categori', categori);
73 app.use('/accounts', accounts); 73 app.use('/accounts', accounts);
74 app.use('/auth', auth); 74 app.use('/auth', auth);
......
...@@ -9,7 +9,7 @@ var limit = 10; // 출력 갯수 ...@@ -9,7 +9,7 @@ var limit = 10; // 출력 갯수
9 var video = []; 9 var video = [];
10 var test = 'test'; 10 var test = 'test';
11 var count = 0; 11 var count = 0;
12 -youtube.setKey('AIzaSyAsKr_oWGZIBbL5tLdIl98Lf9Pzqj8jX4o'); // API 키 입력 12 +youtube.setKey('AIzaSyCAaeW1qMSInEdN1OzU20FZlToIZYkb1bc'); // API 키 입력
13 youtube.addParam('order', 'rating'); // 평점 순으로 정렬 13 youtube.addParam('order', 'rating'); // 평점 순으로 정렬
14 youtube.addParam('type', 'video'); // 타입 지정 14 youtube.addParam('type', 'video'); // 타입 지정
15 youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴 15 youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴
...@@ -19,9 +19,7 @@ youtube.search(word, limit, function (err, result) { ...@@ -19,9 +19,7 @@ youtube.search(word, limit, function (err, result) {
19 if (err) { 19 if (err) {
20 console.log(err); 20 console.log(err);
21 } // 에러일 경우 에러공지하고 빠져나감 21 } // 에러일 경우 에러공지하고 빠져나감
22 -
23 //console.log(JSON.stringify(result, null, 2)); // 받아온 전체 리스트 출력 22 //console.log(JSON.stringify(result, null, 2)); // 받아온 전체 리스트 출력
24 -
25 var items = result['items']; // 결과 중 items 항목만 가져옴 23 var items = result['items']; // 결과 중 items 항목만 가져옴
26 for (var i in items) { 24 for (var i in items) {
27 var it = items[i]; 25 var it = items[i];
......
1 -var Youtube = require('youtube-node');
2 -var youtube = new Youtube();
3 -
4 var express = require('express'); 1 var express = require('express');
2 +var CategoriModel = require('../models/CategoriModel');
3 +var VideoModel = require('../models/VideoModel');
5 var router = express.Router(); 4 var router = express.Router();
6 5
7 -var word = '백종원'; // 검색어 지정
8 -var limit = 10; // 출력 갯수
9 -var video = [];
10 -var test = 'test';
11 -var count = 0;
12 -youtube.setKey('AIzaSyAsKr_oWGZIBbL5tLdIl98Lf9Pzqj8jX4o'); // API 키 입력
13 -
14 -youtube.addParam('order', 'rating'); // 평점 순으로 정렬
15 -youtube.addParam('type', 'video'); // 타입 지정
16 -youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴
17 -
18 -youtube.search(word, limit, function (err, result) {
19 - // 검색 실행
20 - if (err) {
21 - console.log(err);
22 - } // 에러일 경우 에러공지하고 빠져나감
23 -
24 - //console.log(JSON.stringify(result, null, 2)); // 받아온 전체 리스트 출력
25 -
26 - var items = result['items']; // 결과 중 items 항목만 가져옴
27 - for (var i in items) {
28 - var it = items[i];
29 - for (var j in it) {
30 - if (it[j]['title'] != null) {
31 - var title = it[j]['title'];
32 - }
33 - if (it[j]['videoId'] != null) {
34 - var video_id = it[j]['videoId'];
35 - }
36 - var urls = 'https://www.youtube.com/watch?v=' + video_id;
37 - }
38 - var item = {
39 - id: count,
40 - title: title,
41 - video_id: video_id,
42 - urls: urls,
43 - };
44 - count++;
45 - video.push(item);
46 - }
47 -});
48 -
49 router.get('/', function (req, res) { 6 router.get('/', function (req, res) {
50 - res.render( 7 + CategoriModel.find(function (err, category) {
51 - 'home', 8 + VideoModel.find(function (err, video) {
52 - { videos: video } // DB에서 받은 videos를 videos변수명으로 내보냄 9 + var item = []; // 카테고리별 비디오 목록을 담아두는 배열
53 - ); 10 + for (var i in category) {
11 + var videos = []; // 비디오 목록을 담는 임시 배열
12 + for (var j in video) {
13 + if (category[i].title == video[j].categori) {
14 + videos.push(video[j]);
15 + }
16 + }
17 + if (videos.length != 0) {
18 + // 빈 배열 체크
19 + console.log(videos);
20 + var items = {
21 + category: category[i],
22 + videos: videos,
23 + };
24 + item.push(items);
25 + }
26 + }
27 + //console.log(item[2].category.title);
28 + //console.log(item[2].videos);
29 + res.render(
30 + 'home',
31 + { video: item, categories: category } // DB에서 받은 videos와 category를 videos변수명으로 내보냄
32 + );
33 + });
34 + });
54 }); 35 });
55 36
56 module.exports = router; 37 module.exports = router;
......