Вызов хранимых процедур в Sequelize.js

Я искал документацию и пытался Google, но я не нашел прямого ответа на вопрос:

Как я могу вызвать хранимую процедуру в Sequelize?

Я искал документацию Sequelize, но я даже не нашел следа слова "процедура" в этом.

Ближе всего я получил этот запрос с ошибкой: https://github.com/sequelize/sequelize/issues/959

Цитата из ссылки:

То, что я представляю, было бы потрясающе:

sequelize.query('CALL calculateFees();').success(
    function (settingName1, settingName2, settingName3, users) {
});

Они упоминают, что можно вызвать хранимые процедуры, но синтаксис не предоставляется.

Может ли кто-нибудь дать мне пример с правильным синтаксисом?

Спасибо.

Ответ 1

Измените success на spread, и вам хорошо идти. Обратите внимание, что это будет работать только на sequlize 2.0

Ответ 2

Вызов SP с параметрами в Sequelize

sequelize
  .query('CALL login (:email, :pwd, :device)', 
        {replacements: { email: "[email protected]", pwd: 'pwd', device: 'android', }})
  .then(v=>console.log(v));

Ответ 3

Последовательные запросы возвращают promises, поэтому ниже показано, как я запрашиваю хранимые процедуры.

sequelize.query('CALL calculateFees();').then(function(response){
     res.json(response);
    }).error(function(err){
       res.json(err);
});

Ответ 4

Я выполнил хранимую процедуру с ключевым словом 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*/)

Ответ 5

Вот как я пишу запрос для хранимых процедур.

    db.query('EXEC calculateFees();').then(function(response){
    res.json(response);
    }).error(function(err){
    res.json(err);
    });