-1
我重視我的服務器代碼:順序不正確執行(node.js的)
var net = require('net');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('MyBBDD.db');
var prueba = '';
function get_kw_actual(nombre,callback){
stmt = db.prepare("SELECT kw_actual FROM usuarios WHERE usuario = ?");
stmt.bind(nombre);
stmt.get(function(error,row){
if(error){
throw err;
}
else{
if(row){
entero=row.kw_actual;
callback(entero);
}
else{
console.log("error");
}
}
});
}
var server = net.createServer(function(socket) {
console.log("Recibo peticion");
socket.on('data', function (data) {
get_kw_actual('Pepe',function(resultado){
console.log('resultado es: ' + resultado);
prueba = '' + resultado;
})
socket.write(prueba);
});
socket.on('close', function() {
console.log('Connection closed');
});
});
server.listen(1337, '192.168.1.101');
在我的服務器,我收到一個請求,我打電話給我的功能「get_kw_actual」我得到了一些我的數據庫,最後我回應了結果。 問題是它首先運行「socket.write(prueba);」比:
stmt.get(function(error,row){
if(error){
throw err;
}
else{
if(row){
entero=row.kw_actual;
callback(entero);
}
else{
console.log("error");
}
}
});
所以......執行沒有按正確的順序執行,結果是不正確的。 有人知道我該如何解決它? 在此先感謝。
此致敬禮。
非常非常感謝你!這是正確的!! :) – Tecnico