javascript - nodejs mssql 返回记录集

标签 javascript sql-server node.js node-mssql

我试图像返回值一样传递来自 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);

关于javascript - nodejs mssql 返回记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31124671/

相关文章:

SQL 连接查找两个数据源之间的不一致

node.js - "EXDEV: cross-device link not permitted"错误是什么意思?

javascript - Angular4 - 滚动超过 300px 时更改标题样式

javascript - 代码在 Internet Explorer 中不起作用

javascript - 我想从 JSON 文件中获取特定数据并将其添加到另一个 JSON 文件/变量中

mysql - SQL - 检查存储过程中是否存在列(表是可变的)

javascript - AngularJS ngRepeat 语法错误

SQL Server - 如何使用具有重复空列的分组集

node.js - 单元测试不可用的全局函数(couchapp、mocha)

javascript - 当您不知道页数时,如何使用 Node.js 在 while 循环中向 API 发出多个分页 GET 请求?