LPI Web Development Essentials 無料問題 10 / 10 ・ 分野5: NodeJS Server Programming
sqlite3 NPMモジュールを const sqlite3 = require("sqlite3"); で読み込んだ。catalog.dbを開く基本形はどれか。
- const db = sqlite3.get("catalog.db");
- const db = sqlite3.run("catalog.db");
- const db = new sqlite3.Database("catalog.db");
- const db = new sqlite3.Table("catalog.db");
正解と解説を見る
正解: C
正解の理由
sqlite3.Databaseコンストラクターにファイル名を渡してデータベースを開く。得られるdbは、その接続に対してSQLを実行するためのオブジェクトになる。
違う選択肢
「const db = sqlite3.run("catalog.db");」… runは開いたDatabaseに対してSQLを実行するメソッドで、ファイルを開くモジュール関数ではない。
「const db = new sqlite3.Table("catalog.db");」… このモジュールの接続生成に使うコンストラクター名はTableではない。
「const db = sqlite3.get("catalog.db");」… getは開いたDatabaseから結果行を得るメソッドで、ファイルを開く関数ではない。
押さえどころ
開く処理に失敗する場合もあるため、実際のアプリケーションでは接続時のエラーを扱う。ファイル名を指定することと、表が作成済みであることは別の条件である。