Node-mssql在查询后挂起

时间:2018-06-02 10:51:49

标签: node.js node-mssql

我遇到了运行节点脚本以从SQL Server检索数据的问题。我似乎得到了结果,但在运行查询后没有执行任何代码。以下是我到目前为止的代码:

var config = {
    user: 'blah',  
    password: 'blah',  
    server: 'blah',  
    database: 'blah'
};

sql.connect(config, err => {

    if(err) { console.log(err); }

    var request = new sql.Request();
    request.query('select * from products', function(err, data){
        console.log(data.recordset);
        ProcessData(data.recordset);                       
    });

});

sql.on('error', err => {
    console.log(err);    
});    

function ProcessData(results){
    for(var i; i < results.length - 1; i++){
        console.log(results[i].sku);
    }
}

现在,我在终端中看到了console.log(data.recordset)的结果,但我从未在ProcessData函数中看到终端中的任何结果。是否有我遗漏的东西让我的代码无法正常运行?感谢。

瓦德

1 个答案:

答案 0 :(得分:2)

解决了这个问题。您只需要关闭连接即可。

sql.connect(config, err => {

    if(err) { console.log(err); }

    var request = new sql.Request();
    request.query('select * from products', function(err, data){
        console.log(data.recordset);
        ProcessData(data.recordset);  
        sql.close() // just close the connection and it will exit !

    });

});