节点没有为成功的存储过程返回值

你还在处理这个问题吗?

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的版本问题。

根据MySQL 文档

使用CALL语句调用过程(请参见第13.2.1节“CALL语法”),并且只能使用输出variables传回值。 一个函数可以像在其他函数中那样从一个语句中调用(也就是通过调用该函数的名字),并且可以返回一个标量值。

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