节点js db2模块

时间:2016-09-22 14:10:20

标签: node.js db2

我正在使用该代码

var ibmdb = require('ibm_db')

function executeSql(sql)
{
  return new Promise( (resolve,reject) => {
    ibmdb.open("DRIVER={DB2};DATABASE=SITRAN;...",(err,conn) => {
      if (err) reject(Error(err))
      conn.query(sql,(err,rows) => {
        if (err) reject(Error(err))
        console.log('length:',rows.length)
        conn.close(() => { console.log('done'); resolve(rows); })
        })
      })
  })
}

executeSql(sql)
.then((result) => { console.log('result:',result.length) })

db2部分正在运行,它提供1045行,但代码工作奇怪

length: 0
length: 1045
done
result: 0

我不明白为什么length显示两次,一个显示0,一个显示1045.还有resolve(rows)似乎不起作用的原因。

1 个答案:

答案 0 :(得分:0)

conn.query()是一个异步函数,可以解释双重console.log()的行为。至于resolve()的怪异行为,请尝试使用resolve(rows.fetchAllSync())