Node.js sequelize 调用带有输入和输出参数的存储过程
Node.js sequelize calling a stored procedure with input and output parameters
数据库查询:
CREATE DEFINER=`root`@`localhost` PROCEDURE `signinVendor`(in inputvalue varchar(100), in pword varchar(30), **out retval tinyint**)
BEGIN
Node.js代码:
const spquery = await db.sequelize.query('call signinVendor(:inputvalue,:pword,**@retval**);',{
replacements:{
inputvalue : req.body.inputvalue,
pword : req.body.password
},
type: QueryTypes.SELECT,
raw: true
});
我可以通过输入输入值和密码来调用程序。但是,我无法通过我的 sequelize nodejs 代码找到访问 return 值的语法。 sequelize中out参数的代码怎么写?
好吧,看来我们可以预先编写代码并通过数据库中的 select 发送输出,避免使用输出参数。似乎 Sequelize ORM 还没有实现任何通过 NodeJS 访问输出参数的方法。
例如:
在SQL,
您可以使用参数来存储所需的输出,而不是在存储过程中创建输出参数。
设置查询 = (select count(*) from table_name);
然后你可以在没有参数的情况下执行 select :
select查询;
这样你就不需要依赖 Sequelize ORM 中的输出参数。您可以简单地 select 您想要的输出作为存储过程的结果。
数据库查询:
CREATE DEFINER=`root`@`localhost` PROCEDURE `signinVendor`(in inputvalue varchar(100), in pword varchar(30), **out retval tinyint**)
BEGIN
Node.js代码:
const spquery = await db.sequelize.query('call signinVendor(:inputvalue,:pword,**@retval**);',{
replacements:{
inputvalue : req.body.inputvalue,
pword : req.body.password
},
type: QueryTypes.SELECT,
raw: true
});
我可以通过输入输入值和密码来调用程序。但是,我无法通过我的 sequelize nodejs 代码找到访问 return 值的语法。 sequelize中out参数的代码怎么写?
好吧,看来我们可以预先编写代码并通过数据库中的 select 发送输出,避免使用输出参数。似乎 Sequelize ORM 还没有实现任何通过 NodeJS 访问输出参数的方法。
例如:
在SQL,
您可以使用参数来存储所需的输出,而不是在存储过程中创建输出参数。
设置查询 = (select count(*) from table_name);
然后你可以在没有参数的情况下执行 select :
select查询;
这样你就不需要依赖 Sequelize ORM 中的输出参数。您可以简单地 select 您想要的输出作为存储过程的结果。