Ответ 1
Измените success
на spread
, и вам хорошо идти. Обратите внимание, что это будет работать только на sequlize 2.0
Я искал документацию и пытался Google, но я не нашел прямого ответа на вопрос:
Как я могу вызвать хранимую процедуру в Sequelize?
Я искал документацию Sequelize, но я даже не нашел следа слова "процедура" в этом.
Ближе всего я получил этот запрос с ошибкой: https://github.com/sequelize/sequelize/issues/959
Цитата из ссылки:
То, что я представляю, было бы потрясающе:
sequelize.query('CALL calculateFees();').success(
function (settingName1, settingName2, settingName3, users) {
});
Они упоминают, что можно вызвать хранимые процедуры, но синтаксис не предоставляется.
Может ли кто-нибудь дать мне пример с правильным синтаксисом?
Спасибо.
Измените success
на spread
, и вам хорошо идти. Обратите внимание, что это будет работать только на sequlize 2.0
sequelize
.query('CALL login (:email, :pwd, :device)',
{replacements: { email: "[email protected]", pwd: 'pwd', device: 'android', }})
.then(v=>console.log(v));
Последовательные запросы возвращают promises, поэтому ниже показано, как я запрашиваю хранимые процедуры.
sequelize.query('CALL calculateFees();').then(function(response){
res.json(response);
}).error(function(err){
res.json(err);
});
Я выполнил хранимую процедуру с ключевым словом EXEC.
sequelize
.query('EXEC getData :@param1', { replacements: { @param1: 'Test'}, type:sequelize.QueryTypes.SELECT })
.then(data => /*Do something with the data*/)
.catch(error => /*Do something with the error*/)
Вот как я пишу запрос для хранимых процедур.
db.query('EXEC calculateFees();').then(function(response){
res.json(response);
}).error(function(err){
res.json(err);
});