Bir MYSQL Sorum Ve Bir De Node.Js+MYSQL Sorum [Uzman]
-
pSkpt bunu yazdı
O zaman böyle olacak.
function runQuery(query_arr,sira){ connection.query(query_arr[sira]){ if(err) throw err; var sonuc1 = rows; sonuclar.append(rows); if (query_arr.length <= sira+1){ console.log(sonuclar); }else{ runQuery(query_arr, sira+1); } }); } sonuclar = [] query_arr = ["aaa","bbbb", "ccc", "ddd", "eee"] runQuery(query_arr, 0);Harbi harbi helal olsun hocam aslında çok da harika oldu yani enazından daha derli toplu oldu ama maalesef sadece console.log yazdırmada :(
Yani alt alta console.log ile yazdırılabiliyordu;
Fakat burada farklı bir sıkıntı var ki şöyle res.render Error: Can't set headers after they are sent. şeklinde hata veriyor. Çünkü render'a bir defa atama yapabiliyoruz. Kod son haliyle bu. Res.render'ın bir kere işlenmesi gerekiyor bu yüzden ilk postta yazdığım hali şart :/
function runQuery(query_arr,sira){ connection.query(query_arr[sira], function(err, rows, fields) { if (err) throw err; sonuclar.push(rows); if (query_arr.length <= sira+1){ res.render('index', { sira: sonuclar }); }else{ runQuery(query_arr, sira+1); } }); } var query_arr = [query, query2]; runQuery(query_arr, 0); -
detCode bunu yazdıpSkpt bunu yazdı
O zaman böyle olacak.
function runQuery(query_arr,sira){ connection.query(query_arr[sira]){ if(err) throw err; var sonuc1 = rows; sonuclar.append(rows); if (query_arr.length <= sira+1){ console.log(sonuclar); }else{ runQuery(query_arr, sira+1); } }); } sonuclar = [] query_arr = ["aaa","bbbb", "ccc", "ddd", "eee"] runQuery(query_arr, 0);aynen hocam :D biraz önceki gibi yapmak için de bi tane callback değişkeni filan oluşturmak gerekiyor şurdaki ilk cevapda elemanın anlattığı gibi http://stackoverflow.com/questions/19739755/nodejs-callbacks-simple-example veya https://github.com/caolan/async şurdaki kütüphaneyle filanda yapabilirsin
pSkpt hocam cidden çok güzel aştı karışık callback olayından da kurtardı beni. Ama res.render'ı yalnızca 1 defa tanımlayabiliyoruz bu sıkıntı.
Tüm bu işlemlerin sonunda nested olmadan bir kerede tüm farklı sorguları nasıl res.render'a yollayabilirim?
-
Dediğim gibi node.js ile ilgim olmadığı için düz kod mantığı ile yazdım ama şurada birşeyler anlatılmış isterseniz bi inceleyin.
http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js
-
pSkpt bunu yazdı
Dediğim gibi node.js ile ilgim olmadığı için düz kod mantığı ile yazdım ama şurada birşeyler anlatılmış isterseniz bi inceleyin.
http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js
Hocam galiba çözdüm ama ufak biyer kaldı seni de yoruyorum ama:
O sonuclardaki arrayi başka bir arrayla nasıl birleştirebilirim ki şöyle bir sonuc olsun:
var alternatif_array = [{
veri1: 'turan',
veri2: 'pSkpt' }];
Buna öyle bir şekilde o sonucu ekleyelim ki array şu hali alsın?
[{ veri1: 'turan',
veri2: 'pSkpt',
sql1: [{baslik: 'bir başlık', hit: 123123}],
sql2: [{baslik: 'başka bir kayıt', hit: 4322}]
}];
edit: normalde array.push ile ekliyorduk ama array içine array nasıl ekleyecez kafam durdu gecenin bu vakti :(
by_Tet tarafından 27/Haz/15 01:27 tarihinde düzenlenmiştir -
by_Tet bunu yazdıpSkpt bunu yazdı
Dediğim gibi node.js ile ilgim olmadığı için düz kod mantığı ile yazdım ama şurada birşeyler anlatılmış isterseniz bi inceleyin.
http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js
Hocam galiba çözdüm ama ufak biyer kaldı seni de yoruyorum ama:
O sonuclardaki arrayi başka bir arrayla nasıl birleştirebilirim ki şöyle bir sonuc olsun:
var alternatif_array = [{
veri1: 'turan',
veri2: 'pSkpt' }];
Buna öyle bir şekilde o sonucu ekleyelim ki array şu hali alsın?
[{ veri1: 'turan',
veri2: 'pSkpt',
sql1: [{baslik: 'bir başlık', hit: 123123}],
sql2: [{baslik: 'başka bir kayıt', hit: 4322}]
}];
edit: normalde array.push ile ekliyorduk ama array içine array nasıl ekleyecez kafam durdu gecenin bu vakti :(
http://stackoverflow.com/a/8889386/2946122
http://stackoverflow.com/questions/18884840/adding-a-new-array-element-to-a-json-object
şunlar işini görür sanki
-
Yok hocam concat ile iki json veya arrayi birleştirebiliyoruz da keyi sıkıntı etmiştim. Çözdüm komplesini şuan kodu derleyip toplayım yayınlıcam güzel birşey olsun istiyorum uzun bi açıklamayla burdan paylaşırım teşekkürlerimi de ayrı ayrı ileticem :)
hala performanslı bir random query arıyorum yalnız ilk soruma hala cevap alamadım :)
-
Ben node.js veritabanı sorguları için knex.js kütüphanesini kullamıyorum. İstersen bu kütüphaneye bir göz at
-
random veri için 1 ve toplam kayıt arasında random sayı oluştur limit ile kullanarak veriyi nokta atışıyla çek.
neden limit? id= şeklinde kullanırsan oluşturduğun sayı karşılığında id gelmezse karşına hata verecek o nedenle.
-
merak ettim neden nodejs
-
Hocam öncelikle, Nodejs tek thread üzerinde çalışıyor. Callback fonksiyonlarını kullanman gerekiyor her seferinde. (Uzun cycle' lar alan işlemlerde (bkz. veritabanı işlemleri)
Veritabanı işlemleri için https://www.npmjs.com/ hazır CRUD işlemleri yapan, package' lar bulabilirsin.
En basitinden, while döngüsünü bile callback' siz yazarsan sıçtın demektir :)
ozgunlu tarafından 27/Haz/15 06:27 tarihinde düzenlenmiştir
mysql sql node.js performance optimization performans optimizasyonu
