2015-06-29 2 views
1

Im пытается пройти набор записей из mssql request.query как возвращаемое значение. Следуя коду на https://www.npmjs.com/package/mssql, вы можете сделать вывод на консоль, но когда я пытаюсь присвоить набор записей другой переменной, она не работает. Что я делаю неправильно? nodejs mssql return recordset

var sql = require('mssql'); 
 
var config = { 
 
    user: 'sa', 
 
    password: 'XXXXXX', 
 
    server: '192.168.8.25', 
 
    database: '3TWIMDB', 
 
} 
 
var resultado=''; 
 
sql.connect(config, function(err){ 
 
var request = new sql.Request(); 
 
    request.query('select 1 as VehiCLASS',function(err,recordset){ 
 
    console.log(recordset[0].VehiCLASS); 
 
    resultado = recordset[0].VehiCLASS; 
 
    }); 
 
    sql.close(); 
 
}); 
 
console.log("rsul: "+resultado);

Спасибо.

ответ

3

Запрос выполняется асинхронно. console.log действительно работает до resultado = recordset[0].VehiCLASS, поэтому он не установлен.

Вы должны синхронизировать любой код, который опирается на асинхронные операции. Вы должны сделать это с помощью функции обратного вызова:

resultado = recordset[0].VehiCLASS; 
console.log("rsul: ", resultado); 

Вы также можете задать собственную функцию обратного вызова для предотвращения гнездования:

function queryComplete(err, result) { 
    // should handle error 

    console.log("rsul: ", result); 
} 

resultado = recordset[0].VehiCLASS; 
queryComplete(null, resultado); 
+0

Спасибо вам !!!!! – JiJiJiAR

 Смежные вопросы

  • Нет связанных вопросов^_^