我对knex.js有问题
如何在knex.js中使用输出调用存储过程
sp字符串:调用sp_start(1,@outmsg);
我需要调用该SP并选择返回的输出
我的代码:
.get('/:headerId/recount', function(req, res, next) {
knex.raw(
'Call sp_start(?,?)',[req.params.headerId, @outmsg]
)
.then(function(result) {
return;
});
})
但它返回错误
答案 0 :(得分:2)
我正在使用具有路由/服务的Express服务器。上面的答案对我不起作用。
所做的工作是使用多语句原始方法,如下所示:
ExpressService(knex, param){
return knex.raw(`call sp_start(${param}, @outmsg); select @outmsg as outmsg;`);
};
您还需要将multipleStatements: true
添加到您的MySQL连接中。
答案 1 :(得分:0)
knex.transaction(trx => {
return knex.raw(
'Call sp_start(?,@outmsg)',
[req.params.headerId]
)
.then(res => knex.select(knex.raw('@outmsg')));
})
.then(res => console.log("Got output:", res));
应该工作。