2017-08-02 63 views
0

我看到所有的数据行重复两次,在我的JSON从MSSQL中的节点返回:MSSQL的NodeJS在.query都记录集和记录返回双倍数据

{ 
     "recordsets": [[{ 
        "student_firstname": "Jonah    ", 
        "student_lastname": "Hill     " 
       }, { 
        "student_firstname": "Debra     ", 
        "student_lastname": "Smith    " 
       } 
      ]], 
     "recordset": [{ 
       "student_firstname": "Jonah    ", 
       "student_lastname": "Hill     " 
      }, { 
       "student_firstname": "Debra     ", 
       "student_lastname": "Smith    " 
      } 
     ], 
     "output": {}, 
     "rowsAffected": [2] 
    } 

我临时改变了查询得到两行看看是否所有的行都是重复的,而且它们正如你上面看到的那样。

function getStudent(studentID) 
{ 
    console.log("---------getStudent"); 


    sql.on('error', err => { 
     // ... error handler 
     console.log("DB Error2: " + err); 
    }) 


    return sql.connect(config).then(pool => { 
      // Query 
      return pool.request() 
      .input('input_parameter', sql.Int, studentID) 
      //.query('select student_firstname, student_lastname from students where student_id = @input_parameter') 
      .query('select student_firstname, student_lastname from students where student_id in (31,32)') 
     }).then(function(result) { 
      console.log("getStudent:then(result=>"); 
      console.dir(result); 
      sql.close(); 
      return result; 
     }) 
     .catch(err => { 
      // ... error checks 
      console.log("DB Error1: " + err); 
      sql.close(); 
      throw err; 
     }) 

} 

上述函数在返回JSON的app.get语句中调用。

的console.dir(结果)示出了与上述相同的JSON,除了显示“本发明的课题:在第一行中,所以我不认为它进一步包裹JSON

{ recordsets: [ [ [Object], [Object] ] ], 
    recordset: 
    [ { student_firstname: 'Jonah     ', 
     student_lastname: 'Hill     ' }, 
    { student_firstname: 'Debra     ', 
     student_lastname: 'Smith     ' } ], 
    output: {}, 
    rowsAffected: [ 2 ] } 

。 。我可以用这样的数据的工作,但它浪费带宽

回答

0

的数据不会重新调整两次,但只是通过两个属性暴露的recordset财产只是暴露了recordsets第一记录

mssql documentation

result.recordsets.length // count of recordsets returned by the procedure 
result.recordsets[0].length // count of rows contained in first recordset 
result.recordset // first recordset from result.recordsets