sql-server - Node.js Tedious Rows 是一个空数组,但 RowCount 是正确的

标签 sql-server node.js express tedious

这是我正在运行的基本代码块。我已按预期返回 RowCount(现在只有 5 个项目),但返回的行是一个空数组。

我做错了什么吗?顺便说一下,我正在连接到 SQL azure。我没有任何连接问题,我相信我已经设置了正确的选项(rowCollectionOnRequestCompletion 为 true)。

有什么想法吗?

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;

exports.list = function(req, res){
    var connection = new Connection({
    "userName": "myCoolUsername",
    "password": "SoMePa$$word",
    "server": "something.database.windows.net",
    "options": {
        "database": "mySampleDbName",
        "encrypt": true,
        "rowCollectionOnDone": true,
        "rowCollectionOnRequestCompletion": true
    }
});

connection.on('connect', function(err){
    //if no error, then we are good to go.
    if(err){
        console.log(err);
    }else
    {
        var request = new Request("SELECT * FROM Products", function(err, rowCount, rows){
            console.log(rowCount);
            res.send(rows);
        })
        connection.execSql(request);
    }
});

最佳答案

我遇到了同样的问题。使用 rowCollectionOnDone: true 选项和 Request 对象上的 doneInProc 事件解决,如下所示。我不知道为什么回调函数在应该的时候返回空数组。

var config = {
    userName: '...',
    password: '...',
    server: 'localhost',
    options: {
        port: 2005,
        database: 'db1',
        rowCollectionOnDone: true
    }
}

connection.execSql(new Request('SELECT * FROM Products', function(err, rowCount, rows){
        if(err) {
            throw err;
        }
    })
    .on('doneInProc',function(rowCount, more, rows){
        console.log(rows); // not empty
    })
);

关于sql-server - Node.js Tedious Rows 是一个空数组,但 RowCount 是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331314/

相关文章:

sql-server - 根据总计计算百分比

SQL查询不会停止执行

node.js - lambda + api 网关什么时候真正向客户端发送响应?

javascript - Express 是 NodeJS 最具扩展性的应用程序框架吗?

c# - 将非常小的 double 转换为 SQL float 时出现问题

sql-server - 显式删除临时表或让 SQL Server 处理它

node.js - mongoose.js 服务器 - 查询数据的 res.write 不会将数据发送回客户端

javascript - Node 双工流在读取时实际上并不发出数据

node.js - 无法在 router.post 中获取正文,但可以使用 app.post Node js/express

node.js - Expressjs 未在 heroku 上加载样式表,出现 500 错误