TypeError:done不是函数查询回调

时间:2017-01-24 19:49:49

标签: javascript sql node.js node-sqlserver

我试图将查询结果保存到变量中,我已经读过你必须使用回调来执行此操作。我遇到此过程有问题并收到错误。

function getQryUser(user) {
  if (user.chkUserStatus) {
    var qryUser = request.query("SELECT someItems on someTbls", function(err, rows, done) {
      if (err) {
        return done(err, null);
      } else {
        return done(null, rows[0]);
      }
    });
  }
}

从我调用我的函数

var qryUser = getQryUser(user);

1 个答案:

答案 0 :(得分:0)

假设您使用node-sqlserverquery()回调只需要两个参数errorresults。以下是他们官方unit tests的一个例子:

sql.query(conn_str, "SELECT 1 as X, 'ABC', 0x0123456789abcdef ", function (err, results) {
    assert.ifError(err);

    var buffer = new Buffer('0123456789abcdef', 'hex');
    var expected = [{ 'X': 1, 'Column1': 'ABC', 'Column2': buffer}];

    assert.deepEqual(results, expected, "Results don't match");
    ...

您是否亲自查看了unit tests的示例并从那里获取了done()?请注意,它来自suite()之外的父query()范围,因此与一般query() API使用无关。