nodejs-mssql返回记录集

nodejs mssql return recordset

本文关键字:记录 返回 nodejs-mssql      更新时间:2023-09-26

我试图像返回值一样通过mssql request.query中的记录集。遵循上的代码https://www.npmjs.com/package/mssql制作控制台输出很容易,但当我试图将记录集指定给另一个变量时,就不起作用了。我做错了什么?

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);

谢谢。

查询是异步运行的。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);