web-dev-qa-db-ja.com

Sequelize.jsでのストアドプロシージャの呼び出し

ドキュメントを検索してグーグルで試してみましたが、質問に対する正解は見つかりませんでした。

Sequelizeでストアドプロシージャを呼び出すにはどうすればよいですか?

Sequelizeのドキュメントを検索しましたが、その中に「手順」という単語の痕跡は見つかりませんでした。

私が得た最も近いものは、このバグレポートが返された機能のリクエストでした: https://github.com/sequelize/sequelize/issues/959

リンクからの引用:

私が想像することは素晴らしいだろう:

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

ストアドプロシージャを呼び出すことは可能ですが、構文は提供されていません。

正しい構文の例を誰かに教えてもらえますか?

ありがとう。

16
atoth

successspreadに変更すれば、問題ありません。これはsequlize 2.0でのみ機能することに注意してください

10

SPをSequelizeのパラメーターで呼び出す

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

sequelizeクエリはpromiseを返すため、以下はストアドプロシージャをクエリする方法です。

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

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*/)
0
Josep1992