Mysql bağlantısını nerede kapatırım?Düğüm Mysql Çıkışı çağırdıktan sonra sorguyu sorgulama
Sırayla sorguları çalıştırmam gerekiyor. .
var sqlFindMobile = "select * from user_mobiles where mobile=?";
var sqlNewUser = "insert into users (password) values (?)";
//var sqlUserId = "select last_insert_id() as user_id";
var sqlNewMobile = "insert into user_mobiles (user_id, mobile) values (?,?)";
connection.connect(function(err){});
var query = connection.query(sqlFindMobile, [req.body.mobile], function(err, results) {
if(err) throw err;
console.log("mobile query");
if(results.length==0) {
var query = connection.query(sqlNewUser, [req.body.password], function(err, results) {
if(err) throw err;
console.log("added user");
var user_id = results.insertId;
var query = connection.query(sqlNewMobile, [user_id, req.body.mobile], function(err, results) {
if(err) throw err;
console.log("added mobile");
//connection.end();
});
});
}
});
//connection.end();
(ben SO arama denedim düğüm, NPM-ekspres ve NPM-mysql ile bir acemi ilgili soruları bulmak için "enqueue olamaz mysql ifade": Ben şu anda şöyle bir kod yazıyorum ve onları bulamadım.)
Ben connect.end() "eklenen mobil" günlüğüne sonra yorumlanır. Algıladığım problem, akıştan (yani) herhangi bir atım (err) noktasından çıkarsa, bağlantının kapatılmayacağıdır. Bağlantıları açık bir çaylak hatası ve ölçeklenebilirlik üzerindeki etkisi açık olarak biliyorum. Ben sadece bu noktada hayatımda yapmak istemiyorum. Yani bunun için takip edilebilecek bir modeliniz varsa, bu harika olurdu. async iyi bir çağrı gibi görünüyor. Kontrol etmek ve cevap vermek için bir gün süreceğim. Teşekkürler. –
yakında konuşuluyor, async benim için işe yaramaz çünkü bu sorgular yuvalanmış ve seri olarak yürütülmesi gereken bir şey değil. durumları korumak ve önkoşulları kontrol etmek bunun için çok fazla masraflıdır. –
Sorguları çalıştırmak için şelale işlevini kullanabilirsiniz. Burada temel yapıyı yazdım: http://pastebin.com/RDaiqZsp – matthewtole