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

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

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

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

Q&A

解決済

2回答

1406閲覧

dexie データ内容を取得したい

tera_san

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2022/03/29 03:46

〜前提・実現したいこと〜
dexieでgetをした時に取得できるデータの中の_valueオブジェクトの値を取得したい

〜発生している問題・エラーメッセージ〜
取得方法がわからない

〜該当のソースコード〜

JacaScript

1const dbName = 'hogeDB'; 2const dbVersion = 1; 3 4const db = new Dexie(dbName); 5db.version(dbVersion).stores({ 6 rows:'hoge1,hoge2' 7}); 8 9// データ入力 10 11console.log(db.rows.get(hoge1));

ログ
je{...}

〜自分で調べたことや試したこと〜
DevToolで下記表示は得られているのですが、どのようにコーディングすれば_valueオブジェクトの各プロパティの値を取得できますでしょうか。

[DevTool]
▼je{...}
...
▼_value:
hoge1:'hoge'
hoge2:'hogehoge'

試したコード

db.rows.get(hoge1)._value db.rows.get(hoge1).value db.rows.get(hoge1)['_value']

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

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

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

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

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

guest

回答2

0

ベストアンサー

javascript

1const db = new Dexie("hogeDB"); 2const dbVersion = 1; 3db.version(dbVersion).stores({rows:`hoge1, hoge2`}); 4 5(async()=> { 6 await db.rows.bulkPut([{hoge1: "imHogen", hoge2: "daze"}, 7 {hoge1:"imHogestina", hoge2:"desunoyo"}]); 8 const hogestinaGobi = (await db.rows.get("imHogestina").catch(console.error))?.hoge2; // なぜかcatchで拾ってくれない 9 if(hogestinaGobi) console.log(hogestinaGobi); 10})();

async でくくってカラム名でアクセスできました。あまり関係ないですがkeyを間違えても何もcatchしてくれません。ナゼダ。

追記
https://dexie.org/docs/Table/Table.get()
わかりました。キーが合ってないとエラーは吐かずにundefinedで正しく解決して返すようです。

投稿2022/03/29 06:22

編集2022/03/29 11:03
sigurupo

総合スコア137

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

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

tera_san

2022/03/29 07:09

ありがとうございます! 無事に解決できました。 const hogestinaGobi = await db.rows.get("imHogestina").catch((error)=>{console.error(error)}); ではCatchしてくれました。
guest

0

そのライブラリを使ったことはないですが、公式ドキュメントを見る限り、Promise が返ってくるみたいです。

If no item was found, the returned promise will resolve with undefined. Otherwise it will resolve with the found value.
Table.get()

投稿2022/03/29 06:11

編集2022/03/29 06:12
Lhankor_Mhy

総合スコア36104

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

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

tera_san

2022/03/29 07:02

ありがとうございます! 無事に解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問