pSkpt bunu yazdı O zaman byle olacak. function runQuery { connection. query { if throw err; var sonuc1 = rows; sonuclar. append ; if (query_arr. length <= sira+1) else }); } sonuclar = query_arr = 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? iyibu! yeniden..

O zaman byle olacak. function runQuery { connection. query { if throw err; var sonuc1 = rows; sonuclar. append ; if (query_arr. length <= sira+1) else }); } sonuclar = query_arr = 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 Who is detCode?

O zaman byle olacak. function runQuery { connection. query { if throw err; var sonuc1 = rows; sonuclar. append ; if (query_arr. length <= sira+1) else }); } sonuclar = query_arr = runQuery(query_arr, 0); pSkpt tarafından 27/Haz/15 00:48 tarihinde düzenlenmiştir İmza...

merak ettim neden nodejs

tuzak değildi sadece merak ettim

Herkese çok teşekkür ederim. Başta @detCode ve @pSkpt olmak üzere. Node. js sorunum çzüldü. Şu şekilde açıklamalı olarak yazayım kodları: //nce render'a atacağımız sıradan değişkenleri bi belirtelim var tum_render = ; tum_render. title = "Turan"; tum_render. description = "Turan'ın websitesi"; //Daha sonra kullanacağımız sql sorgularını sorgular ayrı isimler ayrı olmak üzere belirtelim var rastgeleQuery = "SELECT baslik, hit FROM icerik ORDER BY RAND LIMIT 1"; var son5Query = "SELECT baslik, hit FROM icerik LIMIT 5"; var query_arr = ; var query_name = ; //bilgileri tanımladık şimdi fonksiyonları yazalım onlar da şyle: //veritabanı sorgusu yapacak fonksiyon function runQuery { connection. query(query_arr , function { if throw err; var obj = ; obj[query_name ] = rows; sonuclar. push ; if (query_arr. length <= sira+1) else }); } //iki veya daha fazla objecti birleştiren fonksiyon kaynak: http://stackoverflow.com/questions/2454295/javascript-concatenate-properties-from-multiple-objects-associative-array function collect { var ret = ; var len = arguments. length; for (var i=0; i<len; i++) { for { if (arguments . hasOwnProperty } } return ret; } //runQuery sonuçlandığında çalıştırılacak fonksiyon bi nevi callback function sonuc { for(var x = 0; x<=sonuclar. length-1; x++) console. log ; res. render ; } //Tüm bu kodlar içerisinde denendi. Node. js + Express Jade ve Mysql2 kütüphaneleri kullanıldı. iyibu! yeniden..

Eğer kendimi düzgün ifade edememişsem affola hocalar dilim dndüğünce tekrar anlatmaya çalışırım gerekirse fotolarla felan desteklemeye çalışırım. Benim için lümcül bir sıkıntı sırf bu yüzden php'ye dnmek üzereyim ama istemiyorum node. jste sınırsız modül olayı ve c ile plugin yazma kısmı beni cezbediyor... iyibu! yeniden..

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 :) iyibu! yeniden..

detCode bunu yazdı hocam ilk olarak connection. query( fonksiyonu asenkron çalışıyor yani şuandaki yazdığın kod ile console. log sorgudan daha nce çalışabilir. console. log u query fonksiyonun içine geçiceksin php gibi değil. veya bu connection. query nin senkron şeklinde çalışanı var ise onu kullanman lazım onu yapabilmen için ikincisi asenkron çalışıyor dedik, sen senkron ilerlemen için ikinci sorgunu birinci sorgunun cevabı dndüğü yerden başlat ki sırayla devam etsin sen bütün verileri çekince işlerini bitirince yine en son query nin içinde jade ye yollarsın Yani fonksiyon içinde fonksiyon halinde mi çalıştırıyım hocam? Nested mi ne deniyor galiba ingilizcem pek iyi değil de şyle: connection. query { if throw err; var sonuc1 = rows; connection. query { if throw err; var sonuc2 = rows; res. render( ); }); Eğer bunu kastediyorsan sanki atıyorum 5 kayıt olursa bir daha bakmam imkansızlaşacak yani uzar gider içi sanki? Zaten performans için maksimum 4 farklı query çalıştırırım da o ayrı... @detCode evet hocam dediğim bu içi uzayıp gidiyor zaten başka bi yolu varmı bilmiyorum ben hep byle kullanıyorum. senkron çalıştırmak için başka bi yol olabilir ama araştırmak lazım Who is detCode?

MYSQL Sorum pek de uzmanlık gerektirmiyordur belki. Ama en iyi performans için bi formül arıyorum. En performanslı random kayıt nasıl çekilir? Açıklama: ORDER BY RAND çok yavaşlatıyormuş ki gayet de yle website test ile first byte datadan D alıyorum A veya B almam gerek. İnternetteki tüm çzümleri uyguladım nerdeyse. Birisi zellikle kocaman bir dküman yazmış inner join ile randomu çarpıyor max şeklinde alıyor ilk id son idden büyük veya eşitse seç gibi bir algoritma. Maalesef ki arada sırada random getiriyor ama 10tane sorgunun 9 unda ilk id'yi getiriyor. Yani aynı yerde takılıyor. Bir diğer sorum ise Node. js ile alakalı aslına bakarsak javascript de denebilir. Sorunun linki aslında şurada var bir başkası benim yerime sormuş ama cevap yok bunu da araştırdım ama bulamadım bir cevap: http://stackoverflow.com/questions/26100184/how-to-save-the-result-of-mysql-query-in-variable-using-node-mysql Mysql ile connection. query ile çekiyoruz gelen sorguyu dngü içerisinde alıyoruz res. render ile gnderip jade'de değişken olarak okutmam gerek. Eğer fonksiyon içerinde okutursam okuyor. Ama iki tane üç tane sorgu çekersem napacam ben? Yani bana lazım olan phpde kullandığım gibi javascript ile şyle birşey yazmam gerekli var sonuc; connection. query(query, function ); console. log ; Ama javascriptin zelliğinden dolayı o ilk belirtilen sonuç değişkeni fonksiyon içerisinde değiştirilirmiyor değer atanmıyor. Herşeyi denedim sanıyorum. Alternatif neriniz var mı? ZET: MYSQL ile olan sorunun zeti kalın yer. Node. js i zetle anlatamıyorum kodu okusanız yeter sanıyorum. iyibu! yeniden..

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 İmza...

O zaman byle olacak. function runQuery { connection. query { if throw err; var sonuc1 = rows; sonuclar. append ; if (query_arr. length <= sira+1) else }); } sonuclar = query_arr = 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 { connection. query(query_arr , function { if throw err; sonuclar. push ; if (query_arr. length <= sira+1) else }); } var query_arr = ; runQuery(query_arr, 0); iyibu! yeniden..

Ben node. js veritabanı sorguları için knex. js kütüphanesini kullamıyorum. İstersen bu kütüphaneye bir gz at http://knexjs.org/

merak ettim neden nodejs Hocam muhtemelen tuzak soru "Zaten node. js'in anlamı asenkron uygulama callbacklerle haşır neşir olman gerek yoksa ne için kullanıyorsun" gibi derin bir anlam çıkarttım ben :) İşin açığı şyle herkes gibi ben de "vaay demek non-time uygulama ha" diye node. js'e merak saldım ancak daha sonrası yle gelişmedi. Konsola birkaç bişey yazıp eklenti yüklemek hazır yazılan biçok eklentinin devam edip etmediğine gre hareket etmek ve hemen her şey için eklentiler yazıldığını grünce hoşuma gitti. Ayrıca sadece web için değil çok güzel konsol uygulamaları veya mobile için native web uygulamaları yazılabiliyordu araştırdığım kadarıyla. zellikle C/C++ ile eklenti yazmak en harika kısmı. Bir de hız olarak ben iddia ediyorum PHP ile yazdığın bir uygulamayı Node. js ile daha performanslı yazarsın. Benchmarkını felan bilemem işin açığı aynı kişi Node. js ile daha güzel web uygulamaları yazabilir benim grüşüm. Bir de tabi DigitalOcean gibi bir nimette 100$ promosyon kodum olunca tabi node kullanmak daha cazip geldi :D Tüm bunlar PHP'de de olabilir yoktur demiyorum ama host kavramıyla PHP'yi tanıdığım için Phalcon'u aldığım hostingciye yüklettirmeden kullanamadım belki kendi serverımda sürekli PHP kullansaydım iş daha başka boyutlara varabilirdi. Yani kısaca asenkron olması veya çok büyük web sitelerinin sorunları için kullanılması benim kullanma sebebim değil hocam. Eğer meraktan soruyorsan işin ehli biçok kişi avantajlarını sunumlar halinde yazmış incelemeni tavsiye ederim; eğer tuzaksa da cevabım bu şekilde :) shock56 bunu yazdı Ben node. js veritabanı sorguları için knex. js kütüphanesini kullamıyorum. İstersen bu kütüphaneye bir gz at http://knexjs.org/ Hocam MYSQL'e zaten alışkınız az çok knex'in tek avantajı bana sanırsam sql parametresini fonksiyonel olarak yazdırmak olur ona da gerek yok. Tam inceleme fırsatı bulamadım da ilk izlenimim bu oldu. Sağolasın pesimistzombie bunu yazdı 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. Hocam ncelikle sağolasın: 6500 veri var hocam şuanlık çok da birşey değil ama ilerde daha da artacaktır. İngilizce kaynaklardan anladığım kadarıyla LIMIT 1243,1 gibi bir sorguda 1243 tanesini tek tek geçtikten sonra veriyi alıyormuş yani onun da hantal olduğunu sylemişler. Şyle bi algoritma arıyorum SELECT name FROM random AS r1 JOIN (SELECT (RAND (SELECT MAX FROM random)) AS id) AS r2 WHERE r1. id >= r2. id ORDER BY r1. id ASC LIMIT 1; ozgunlu bunu yazdı Hocam ncelikle, Nodejs tek thread üzerinde çalışıyor. Callback fonksiyonlarını kullanman gerekiyor her seferinde. (Uzun cycle' lar alan işlemlerde Veritabanı işlemleri için https://www.npmjs.com/ hazır CRUD işlemleri yapan, package' lar bulabilirsin. En basitinden, while dngüsünü bile callback' siz yazarsan sıçtın demektir :) Aynen haklıymışsın hocam ben bodoslama "js ok jquery ok php ve asp ok html ve css de ok" tamam ya node. js'e başlayak diye başladığım için asenkronun kelime anlamını başıma gelene kadar ğrenmediğim için sıkıntı yaşadım. Sağolasın iyibu! yeniden..

Node. js falan bilmem ama iç içe fonksiyonu şu şekilde yapabilirsin gibi geldi bana. function runQuery { connection. query ); } sonuclar = query_arr = runQuery(query_arr, 0); console. log ;java hocam kesin konuşmayımda burdada runQuery çalışmaya başladığında bitmesini beklemeden console. log'a geçebilir denemedim mysql filan yok konuyu açan arkadaş denese daha iyi olabilir. @by_Tet hocam http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js şuraya bi bakarsın detCode tarafından 27/Haz/15 00:46 tarihinde düzenlenmiştir Who is detCode?

hocam ilk olarak connection. query( fonksiyonu asenkron çalışıyor yani şuandaki yazdığın kod ile console. log sorgudan daha nce çalışabilir. console. log u query fonksiyonun içine geçiceksin php gibi değil. veya bu connection. query nin senkron şeklinde çalışanı var ise onu kullanman lazım onu yapabilmen için ikincisi asenkron çalışıyor dedik, sen senkron ilerlemen için ikinci sorgunu birinci sorgunun cevabı dndüğü yerden başlat ki sırayla devam etsin sen bütün verileri çekince işlerini bitirince yine en son query nin içinde jade ye yollarsın benim bildiğim budur edit hantal olur demişsinde ben hep byle kullandım sorguları değilse asenkron olayından dolayı düzgün çalışmaz. bide jade kullanma benden tavsiye cpu performansı çok ktü detCode tarafından 27/Haz/15 00:30 tarihinde düzenlenmiştir Who is detCode?

pSkpt bunu yazdı Node. js falan bilmem ama iç içe fonksiyonu şu şekilde yapabilirsin gibi geldi bana. function runQuery { connection. query ); } sonuclar = query_arr = runQuery(query_arr, 0); console. log ;java hocam kesin konuşmayımda burdada runQuery çalışmaya başladığında bitmesini beklemeden console. log'a geçebilir denemedim mysql filan yok konuyu açan arkadaş denese daha iyi olabilir. Deniyorum hocam ama muhtemelen dediğin gibi sonuclar. append de tıpkı sonuclar = rows gibi çalışmayacak. Denedikten sonra yazacaktım @pSkpt iyibu! yeniden..

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 = ; Buna yle bir şekilde o sonucu ekleyelim ki array şu hali alsın? [ ]; 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 grür sanki İnsan; insan olsaydı, insan olmazdı..

tuzak değildi sadece merak ettim Pardon ozaman hocam :) Sylediklerim geçerli o konuda pek çok sebebi var iyibu! yeniden..

Hocam ncelikle, Nodejs tek thread üzerinde çalışıyor. Callback fonksiyonlarını kullanman gerekiyor her seferinde. (Uzun cycle' lar alan işlemlerde Veritabanı işlemleri için https://www.npmjs.com/ hazır CRUD işlemleri yapan, package' lar bulabilirsin. En basitinden, while dngüsünü bile callback' siz yazarsan sıçtın demektir :) ozgunlu tarafından 27/Haz/15 06:27 tarihinde düzenlenmiştir Hello, i am nothing. I come from Neverland.

hocam ilk olarak connection. query( fonksiyonu asenkron çalışıyor yani şuandaki yazdığın kod ile console. log sorgudan daha nce çalışabilir. console. log u query fonksiyonun içine geçiceksin php gibi değil. veya bu connection. query nin senkron şeklinde çalışanı var ise onu kullanman lazım onu yapabilmen için ikincisi asenkron çalışıyor dedik, sen senkron ilerlemen için ikinci sorgunu birinci sorgunun cevabı dndüğü yerden başlat ki sırayla devam etsin sen bütün verileri çekince işlerini bitirince yine en son query nin içinde jade ye yollarsın Yani fonksiyon içinde fonksiyon halinde mi çalıştırıyım hocam? Nested mi ne deniyor galiba ingilizcem pek iyi değil de şyle: connection. query { if throw err; var sonuc1 = rows; connection. query { if throw err; var sonuc2 = rows; res. render( ); }); Eğer bunu kastediyorsan sanki atıyorum 5 kayıt olursa bir daha bakmam imkansızlaşacak yani uzar gider içi sanki? Zaten performans için maksimum 4 farklı query çalıştırırım da o ayrı... @detCode Edit: Jade kullanma demişsin hocam syntax'ı çok hoşuma gidiyor başka ne nerin var? by_Tet tarafından 27/Haz/15 00:37 tarihinde düzenlenmiştir iyibu! yeniden..

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. :|

Node. js falan bilmem ama iç içe fonksiyonu şu şekilde yapabilirsin gibi geldi bana. function runQuery { connection. query ); } sonuclar = query_arr = runQuery(query_arr, 0); console. log ;java İmza...

by_Tet bunu yazdı detCode bunu yazdı... ... evet hocam dediğim bu içi uzayıp gidiyor zaten başka bi yolu varmı bilmiyorum ben hep byle kullanıyorum. senkron çalıştırmak için başka bi yol olabilir ama araştırmak lazım Hocam yalnız çok sıkıntı byle mutlaka bir çzümü olmalı bence global değerlere baktım ama o da olmuyor. Enazından daha derli toplu birşekilde yazmamız gerek Mysql ile bir çzümü olabilir diye düşünüyorum açıkcası mysql im biraz kıt. Tek sorguda 3 farklı row getirebilirsek o da yeter :D Gerçi multiple rows olayı var ona bi bakıyım. Bir de Jade ile ilgili tavsiyen nedir hocam hangine engine? iyibu! yeniden..

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 = ; Buna yle bir şekilde o sonucu ekleyelim ki array şu hali alsın? [ ]; 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 iyibu! yeniden..