我在 Node JS 中使用 Tedious 返回一个简单的 SQL 查询:
var Connection = require('tedious').Connection;
var config = {
server: 'myserver.database.windows.net',
authentication: {
type: 'default',
options: {
userName: 'myusername',
password: 'mypassword',
rowCollectionOnDone: true,
rowCollectionOnRequestCompletion: true
}
},
options: {
encrypt: true,
database: 'mydatabase'
}
};
const connection = new Connection(config);
connection.on('connect', function(err) {
if (err) {
console.log(err);
}else{
console.log("Connected");
}
});
var Request = require('tedious').Request
var TYPES = require('tedious').TYPES;
let results = [];
function checkId(cid) {
request = new Request("SELECT * FROM mytable WHERE id = @cid",function(err, rowCount, rows) {
if (err) {
console.log(err);
}
});
request.addParameter('cid', TYPES.NVarChar, cid);
request.on('row', function(row) {
results.push(row);
});
console.log(results) // I can see results array perfectly here
connection.execSql(request);
//return callback(null, results); // Tried setting callback as parameter too in this function but got error "callback is not a function"
}
当我像这样在外面调用语句函数时:
var sqlquery = new checkId(passid);
console.log(sqlquery);
我得到:
"sqlquery {}"
换句话说,一个[object Object]但为空(显然,JSON.strinfigy 为空是没用的)。我已经尝试使用回调作为上述代码中注释的解决方法,但出现错误,当我调用函数时如何查看结果数组?