質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

731閲覧

Node.js + Sequelize でデータを検索した後に、検索結果のIDを抽出し別テーブルに登録したい

abab7200

総合スコア120

CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/10/11 08:04

主にSequelize の質問です。

予め以下モデルを作成しています。
・Team
・Client
・History

Sequelize でfindOneを利用し、TeamモデルとClientモデルから値を検索し、取得したIDを別ModelのHistoryへ引き渡し、
Historiesテーブルにデータを登録したいのですが、公式サイトから参照できそうな内容を見つける事ができませんでした。

恐れ入りますが、どなたかご教授いただければ幸いです。
※以下はCoffeeScriptですがJSでの回答でも可能です。

環境
Node.js + Sequelize + MySql

Team.findOne({where: {name: "テストチーム"}}) && Client.findOne({where: {name: "A社"}}).then(() => History.create( {minutes: 60 # 以下でfindOneで検索した値のIDを引き渡したい teamId: team.id clientId: client.id} ).then((history) => # 何かしらの処理 ) )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SequelizeというよりPromiseの書き方ですかね。

JavaScript

1// Teamモデルから取得 2Team.findOne({ 3 where: { 4 name: "テストチーム" 5 } 6}).then(team => { 7 // Clientモデルから取得 8 return Client.findOne({ 9 where: { 10 name: "A社" 11 } 12 }).then(client => { 13 // Clientモデルから取得できたら両方の取得結果をまとめて返す 14 return Promise.resolve({ 15 team: team, 16 client: client 17 }); 18 }); 19}).then(result => 20 // resultにはteam, clientの結果が入ってるので、それを使う。 21 return History.create( 22 { 23 minutes: 60, 24 teamId: result.team.id, 25 clientId: result.client.id 26 } 27 ); 28}).then(history => { 29 // 何かしらの処理 30});

適宜改行入れましたが、こんな感じでしょうか。
動作確認してないので正しく動くかは不明です。

投稿2018/10/31 03:38

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abab7200

2018/10/31 12:41

ありがとうございました Promiseというのがあるのですね 参考にいたします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問