foinfinity adlı üyeden alıntı:
mesajı görüntüle
Node.js ile bir JSON API sinden alınacak verileri database e ekleme için yardım
11
●430
- 31-08-2020, 21:17:13Merhabalar yardımlarınız için çok teşekkürler sorunu araştırmalarım sonucu çözdüm gayet iyi çalışıyor.
Öncelikle node.js projeme axios ve mysql modüllerini dahil ettim;
npm install axios npm install mysql
'use strict'; const mysql = require('mysql'); const axios = require('axios'); let connection = mysql.createConnection({ host: 'localhost', user: '[kullanıcı adı]', password: '[şifreniz]', database: '[tablo adınız]' }); // veritabanı bağlantısı için gerekli bilgiler connection.connect(function (err) { if (err) throw err; console.log('MySQL bağlantısı başarıyla gerçekleştirildi.'); }); // veri tabanı bağlantısını sağlayan kodlar const getBreeds = async () => { try { return await axios.get('https://www.binance.com/api/v3/ticker/bookTicker') } catch (error) { console.error(error) } }; // axios ile veriyi çektiğimiz kısım // aşağıdaki kısımda verileri bir değişkene atayıp veri tabanına INSERT veya UPDATE ediyoruz. const countBreeds = async () => { const turler = await getBreeds() if (turler.data) { for (let i = 0; i < turler.data.length; i++){ var verilerial = turler.data; connection.connect(function(err){ // veritabanımın tablo adı "coins" tablodaki sütunlar id,symbol,bidPrice,bidQty,askPrice,askQty bu kısımda 'id' yi koymama nedenim veritabanında otomatik olarak artan değer almasıdır (AUTO_INCREMENT). var sql ="INSERT INTO coins (symbol,bidPrice,bidQty,askPrice,askQty) VALUES( '"+verilerial[i].symbol+"','"+verilerial[i].bidPrice+"','"+verilerial[i].bidQty+"','"+verilerial[i].askPrice+"','"+verilerial[i].askQty+"')"; // eğer aynı apiden çektiğiniz verileri database de güncellemek istiyorsanız şunu kullanabilirsiniz. // var sql = "UPDATE coins SET symbol='"+verilerial[i].symbol+"',bidPrice='"+verilerial[i].bidPrice+"',bidQty='"+verilerial[i].bidQty+"',askPrice='"+verilerial[i].askPrice+"',askQty='"+verilerial[i].askQty+"' WHERE id='"+[i]+"'"; connection.query(sql,function(err,result){ if (err) throw err; }); }); } } }; countBreeds() // setInterval(countBreeds,2000); database i güncellemek isterseniz bu kısmı aktifleştirin. countBreads() ı 2sn de bir çalıştırarak veritabanını güncelleyecektir.Bu şekilde sorunu çözdüm. Herhangi bir alanda şunu yapsaydın daha mantıklıydı ya da daha verimli olabilirdi diyebileceğiniz kısım var mıdır. Herkese yardımlarından dolayı teşekkür ediyorum.