이승윤

feat: Search.js 연동

1 -var Youtube = require('youtube-node');
2 -var youtube = new Youtube();
3 -
4 -var word = '백종원 레시피'; // 검색어 지정
5 -var limit = 10; // 출력 갯수
6 -
7 -youtube.setKey('AIzaSyAsKr_oWGZIBbL5tLdIl98Lf9Pzqj8jX4o'); // API 키 입력
8 -
9 -youtube.addParam('order', 'rating'); // 평점 순으로 정렬
10 -youtube.addParam('type', 'video'); // 타입 지정
11 -youtube.addParam('videoLicense', 'creativeCommon'); // 크리에이티브 커먼즈 아이템만 불러옴
12 -
13 -youtube.search(word, limit, function (err, result) { // 검색 실행
14 - if (err) { console.log(err); return; } // 에러일 경우 에러공지하고 빠져나감
15 -
16 - console.log(JSON.stringify(result, null, 2)); // 받아온 전체 리스트 출력
17 -
18 - var items = result["items"]; // 결과 중 items 항목만 가져옴
19 - for (var i in items) {
20 - var it = items[i];
21 - var title = it["snippet"]["title"];
22 - var video_id = it["id"]["videoId"];
23 - var url = "https://www.youtube.com/watch?v=" + video_id;
24 - console.log("제목 : " + title);
25 - console.log("URL : " + url);
26 - console.log("-----------");
27 - }
28 -});
...\ No newline at end of file ...\ No newline at end of file
...@@ -27,9 +27,8 @@ var connect = mongoose.connect('mongodb://127.0.0.1:27017/cookBook', { ...@@ -27,9 +27,8 @@ var connect = mongoose.connect('mongodb://127.0.0.1:27017/cookBook', {
27 var admin = require('./routes/admin'); 27 var admin = require('./routes/admin');
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 home = require('./routes/home.js');
31 -var chat = require('./routes/chat');
32 var connectMongo = require('connect-mongo'); 30 var connectMongo = require('connect-mongo');
31 +var Search = require('./routes/Search');
33 var MongoStore = connectMongo(session); 32 var MongoStore = connectMongo(session);
34 33
35 app.set('views', path.join(__dirname, 'views')); 34 app.set('views', path.join(__dirname, 'views'));
...@@ -69,11 +68,10 @@ app.use(function (req, res, next) { ...@@ -69,11 +68,10 @@ app.use(function (req, res, next) {
69 }); 68 });
70 69
71 //routes add 70 //routes add
72 -app.use('/', home); 71 +app.use('/', Search);
73 app.use('/admin', admin); 72 app.use('/admin', admin);
74 app.use('/accounts', accounts); 73 app.use('/accounts', accounts);
75 app.use('/auth', auth); 74 app.use('/auth', auth);
76 -app.use('/chat', chat);
77 75
78 var server = app.listen(port, function () { 76 var server = app.listen(port, function () {
79 console.log('Express listening on port', port); 77 console.log('Express listening on port', port);
......
1 +var Youtube = require('youtube-node');
2 +var youtube = new Youtube();
3 +
4 +var express = require('express');
5 +var router = express.Router();
6 +
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) {
50 + res.render(
51 + 'home',
52 + { videos: video } // DB에서 받은 videos를 videos변수명으로 내보냄
53 + );
54 +});
55 +
56 +module.exports = router;