2016-03-31 12 views
0

tanımlanmamış app.jsdüğüm js - Düğüm MySQL - Sonuç

MyDatabase = require("./mysql"); 
... 
var availableRooms = mydb.checkRoomStatus(); 
console.log("Rooms " + availableRooms); 
//undefined. 

mysql.js

MyDatabase.prototype.checkRoomStatus = function() { 
this.con.query('SELECT * FROM rooms WHERE status = "open" LIMIT 1',function(err,rows){ 
    if(err) throw err; 

    console.log('Data received from Db:\n'); 
    console.log(rows); // results are coming here. 
    return rows; 
}); 

}

birinci console.log availableRooms değişken "tanımsız" çıktısı .
Bu tür bir istek için geri arama işlevi kullanmalıyım.
Ama nasıl kullanacağımı bilmiyorum. İnternette arama yaparken, geri arama sonuçları almak için mysql için ayrı bir dosya kullanan birini bulamıyorum.

+1

yılında

Şimdi
MyDatabase.prototype.checkRoomStatus = function(callback) { this.con.query('SELECT * FROM rooms WHERE status = "open" LIMIT 1',function(err,rows){ if(err) throw err; console.log('Data received from Db:\n'); console.log(rows); // results are coming here. return callback(rows); }); 

için MySQL kodu tam olarak kullandığınız düğüm-mysql paketine linki verebilir? Pek çok kişi vardır, bu yüzden insanlar cevaplamaya başlamadan önce herhangi bir karışıklıktan kaçınmak için. –

+0

@ParthapratimNeog OP'nin görebildiğiniz gibi, bunun yardımcı olacağını düşünmüyorum. – Ziki

+0

Olası yinelenen [Yanıtı eşzamansız bir çağrıdan nasıl geri döndürürüm?] (Http: // stackoverflow. com/questions/14220321/nasıl-do-i-return-yanıt-asenkronize-çağrı) – Ziki

cevap

2

Satırlarınızı döndürmek için return callback(rows) gerekir ve callback numaranızda yakalamanız gerekir. Umarım açık. Bunu dene ve işe yarayıp yaramadığını görün.

değişiklik app.js

MyDatabase = require("./mysql"); 
... 
mydb.checkRoomStatus(function(res){ 
    var availableRooms = res; 
    console.log("Rooms " + availableRooms); 
}); 
+0

Aynı şeyi yapmaya çalışıyorum ama mysql.js'de MyDatabase tanımlanmadı, tam olarak nerede oluşturulduğunu söylüyor? ve mydb nesnesi nereden geldi? –