节点未返回成功存储过程的值

时间:2017-02-16 16:47:18

标签: mysql node.js asynchronous

你还在处理这个问题吗?

CALL eveql.sp_matFinder('ishkur'); 

在DBeaver中成功返回并为我返回15行。 我已经在node.js中按照这种语法进行了调用。

connection.query('CALL eveql.sp_matFinder(?);', [itemName], function(err, rows){
       if(err) throw err;
       console.log(rows);
       console.log(JSON.stringify(rows));
});

.query(成功返回,但是我收到一个空数组,我的结果应该是。

[ **[]**,
OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 34,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 } ]
Data :  [[],{"fieldCount":0,"affectedRows":0,"insertId":0,"serverStatus":34,"warningCount":0,"message":"","protocol41":true,"changedRows":0}]

所以我也不知所措。它可能是针对节点版本的mysql的版本问题。

1 个答案:

答案 0 :(得分:1)

根据mysql docs

  

使用CALL语句调用过程(参见第13.2.1节,   “CALL语法”),并且只能使用输出变量传回值。   可以像在任何其他语句中一样从语句内部调用函数   函数(即通过调用函数的名称),可以返回一个   标量值。

使用函数返回结果集或使用OUT参数返回标量值。