如何将parameter passing给一个mysql存储过程,并将存储过程的结果返回到nodejs代码中

connection.query("call vts_active_tagid('"+RFIDNumber+"','"+Latitude+"','"+Longitude+"','"+datetime+"','"+imeno+"',@passengers,@trip)"); 

这个存储过程给出了一个包含名字,电话号码和passengerid的输出,如何在nodejs代码中获取这些值

一个样品给你

 dbConnection.getConnection(function(err, connection){ var edituserSQL = "CALL spEditTheme(?,?,?,?)"; var resultt; connection.query(edituserSQL, [ object.selfid,object.theme_background,object.theme_foreground,dateTimeNow ], function(ERROR,RESULT) { if (ERROR) { cb(ERROR, null); } else { console.log("exEditUserTheme result"); console.log(RESULT); var account = RESULT[0][0].result; cb(null, account); } }); connection.release(); }); 
  1. 首先,设置你的mysql接受多个语句

    set mysql.createConnection({multipleStatements: true});

  2. 做你的查询

    query_str = "CALL sp_whatever(?,?,?,@output); select @output"; con.query(query_str, [param1, param2, param3], function(err,rows){ if(err) throw err; console.log(rows); });

输出:

 [OkPacket { fieldCount: 0, affectedRows: 0, insertId: 0, serverStatus: 10, warningCount: 0, message: '', protocol41: true, changedRows: 0 }, [ RowDataPacket { '@output': -2 } ] ]