Kendi Youtube videoları veritabanım var. Şimdiye kadar içerdiği şey bu belirli videoların kimliğidir; video bağlantısında da bulunabilecek olanı.Video bilgilerini veritabanına API aracılığıyla ekleyin
Youtube API'sı ve MySQL kullanımıyla hem başlığın hem de bunların açıklamasını veritabanına eklemek için kullanabileceğim bir yöntem arıyorum.
the mysql npm kullanımıyla, veritabanına bağlanabiliyordum, ancak async doğası beni biraz karıştırıyor. bu da uyumsuz çalıştığı için
1.) o request
içinde, başka connection.query
gerekli olacağını geçerli olmasını sağlamak için ancak:
var request = require('request');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : (this is secret)
database : 'video_db'
});
connection.query('SELECT id FROM videos', function(err, rows, fields) {
if (err) throw err;
for(i=0;i<rows.length-1;i++){
var APIkey = (this is also secret)
var videoid = rows[i].id;
//gets data of a single video
var API_URL = 'https://www.googleapis.com/youtube/v3/videos'
+ '?part=snippet'
+ '&id=' + videoid
+ '&key=' + APIkey;
request(API_URL, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(JSON.parse(body));
} else {
console.log(error);
};
});
};
});
Sorular:
İşte benim orijinal (tamamlanmamış) kod Sonuçtan emin değilim. Bu cevabın öğelerini veritabanına yazmanın doğru yolu nedir? Başka bir çeşit hizmet kullanmalı mıyım? Bütün mantığın 'SELECT id FROM videos'
içinde yazılması kötü bir fikir miydi?
2.) API bağlantıları çalıştı ve tarayıcıda çalıştı, ama kod kendisi çalıştırıldığında, request
aşağıdaki mesajın oluştuğu, atar ve hata:
{ [Error: connect ENOBUFS 216.58.214.202:443 - Local (undefined:undefined)]
code: 'ENOBUFS',
errno: 'ENOBUFS',
syscall: 'connect',
address: '216.58.214.202',
port: 443 }
Bunun kaynağı nedir sorun? add "SİPARİŞ:
O, teşekkürler yardımcı oldu ve çalıştı! –