node.js sqliteと接続してテーブルを作成する

node.js sqliteと接続してテーブルを作成する

node.js で、sqliteと接続してテーブルを作成するサンプルコードを記述してます。nodeのバージョンは、14.15.1です。

環境

  • OS  CentOS Stream release 8
  • node V14.15.1
  • npm 6.14.7
  • sqlite 3.26.0

sqlite3インストール

npmでインストールしておきます。

npm install sqlite3

テーブルを作成

sqlite3を使用して、sqliteにテーブルを作成するサンプルコードです。
使用するtest.dbは、コードと同一階層に作成してます。

const sqlite3 = require('sqlite3');
// 作成したDBに接続
const db = new sqlite3.Database('./test.db');

db.serialize(() => {
    db.run('CREATE TABLE bar (name, age)');
    db.run('INSERT INTO bar VALUES (?,?)', 'tom', 35);
});

実行結果

また、db.runはserializeを使用しないと非同期で実行されるのでcreateでテーブルを作成する前に、insertが実行されエラーとなってしまいす。

const sqlite3 = require('sqlite3');
// 作成したDBに接続
const db = new sqlite3.Database('./test.db');

db.run('CREATE TABLE bar (name, age)');
db.run('INSERT INTO bar VALUES (?)', 'tom', 35);

<出力結果>
undefined:0



[Error: SQLITE_ERROR: no such table: bar
Emitted 'error' event on Statement instance at:
] {
  errno: 1,
  code: 'SQLITE_ERROR'
}