Ubuntu 22.04でNode.jsとSQLiteを使う方法

著者は、Write for Donationsプログラムの一環として寄付を受けるために/dev/colorを選びました。

以下の文章を日本語で自然に言い換えてください。1つのオプションで大丈夫です:
「Introduction」

SQLiteはデータを保存するための人気のあるオープンソースのSQLデータベースエンジンです。サーバーレスであり、実行にサーバーを必要とせず、代わりにコンピュータのディスク上に存在するファイルにデータを読み書きします。さらに、SQLiteには設定が不要です。これにより、埋め込みシステム、デスクトップ/モバイルアプリ、プロトタイピングなど様々な用途でポータブル性に優れた人気の選択肢となっています。

Node.jsでSQLiteを使用するためには、アプリケーションからSQL文をデータベースに送信し、実行するためのSQLiteデータベースに接続するデータベースクライアントが必要です。人気のある選択肢の1つは、SQLite 3の非同期バインディングを提供するnode-sqlite3パッケージです。

このチュートリアルでは、node-sqlite3を使用してSQLiteデータベースと接続を作成します。その後、データベースにテーブルを作成し、データを挿入するNode.jsアプリを作成します。最後に、アプリを修正してnode-sqlite3を使用してデータベースからデータを取得、更新、削除します。

前提条件

このチュートリアルに従うためには、次のものが必要です。

  • A Node.js development environment set up on your system. If you are using Ubuntu 22.04, install the latest version of Node.js by following Option 3 of our tutorial How To Install Node.js on Ubuntu 22.04. For other systems, consult our tutorial series How to Install Node.js and Create a Local Development Environment.
  • SQLite3 installed on your development environment. Follow Step 1 of our tutorial How To Install and Use SQLite on Ubuntu 20.04.
  • Basic knowledge of how to create tables and write SQL queries to retrieve and modify data in a table. Follow Steps 2 through 6 of our tutorial How To Install and Use SQLite on Ubuntu 20.04.
  • Familiarity with how to write a Node.js program, which you can find in our tutorial How To Write and Run Your First Program in Node.js.

ステップ1-プロジェクトディレクトリの設定

このステップでは、プロジェクトディレクトリを作成し、依存関係としてnode-sqlite3をダウンロードします。

最初に、mkdirコマンドを使用してディレクトリを作成します。このチュートリアルではsqlite_demoと呼ばれていますが、任意の名前に置き換えることができます。

  1. mkdir sqlite_demo

 

次に、cdコマンドを使用して新しく作成したディレクトリに移動してください。

  1. cd sqlite_demo

 

npmコマンドを使用してプロジェクトディレクトリをnpmパッケージとして初期化します。

  1. npm init -y

 

コマンドは、プロジェクトに重要なメタデータを保持するpackage.jsonファイルを作成します。オプションの-yは、npmにすべてのデフォルトを受け入れるように指示します。

コマンドを実行すると、以下の出力が画面に表示されます。

Output

Wrote to /home/sammy/sqlite_demo/package.json: { “name”: “sqlite_demo”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “test”: “echo \”Error: no test specified\” && exit 1″ }, “keywords”: [], “author”: “”, “license”: “ISC” }

出力は、プロジェクトの重要なメタデータを記録するプロパティを含む、package.jsonファイルが作成されたことを示しています。重要なオプションのいくつかは次の通りです。

  • name: the name of your project.
  • version: your project version.
  • main: the starting point for your project.

デフォルトオプションはそのままにしておくこともできますが、お好みに合わせてプロパティの値を変更しても構いません。プロパティに関する詳細情報は、npmのpackage.jsonドキュメントを参照してください。

次に、npm installコマンドを使ってnode-sqlite3パッケージをインストールしてください。

  1. npm install sqlite3

 

パッケージをインストールした後、出力は以下のように表示されます。

Output

added 104 packages, and audited 105 packages in 9s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

次のセクションでは、node-sqlite3をインストールしたので、それを使用してSQLiteデータベースに接続します。

ステップ2 — SQLiteデータベースへ接続する

このステップでは、node-sqlite3を使用して、作成するSQLiteデータベースにNode.jsプログラムを接続します。このデータベースには、異なるサメとその属性が含まれています。データベース接続を確立するために、node-sqlite3パッケージはDatabaseクラスを提供します。クラスをインスタンス化すると、コンピュータディスク上にSQLiteデータベースファイルが作成され、それに接続されます。接続が確立されると、後のセクションでデータの挿入、取得、更新に使用するアプリケーションのためのテーブルを作成します。

Using nano、もしくはお気に入りのテキストエディタを使用して、db.jsファイルを作成し、開きます。

  1. nano db.js

 

「db.js」ファイルに、以下のコードを追加してSQLiteデータベースとの接続を確立してください。

以下の内容を日本語で表現してください。一つのオプションのみ必要です。
「sqlite_demo/db.js」
const sqlite3 = require("sqlite3").verbose();
const filepath = "./fish.db";

function createDbConnection() {
  const db = new sqlite3.Database(filepath, (error) => {
    if (error) {
      return console.error(error.message);
    }
  });
  console.log("Connection with SQLite has been established");
  return db;
}

最初の行では、node-sqlite3モジュールをプログラムファイルにインポートします。2行目では、SQLiteデータベースを保存したい場所とデータベースファイルの名前(この場合はfish.db)を設定して、変数filepathを定義します。

次の行では、createDbConnection()関数を定義して、SQLiteデータベースとの接続を確立します。関数内で、新しいキーワードを使用してsqlite3.Database()クラスのインスタンスを作成します。このクラスは、ファイルパスとコールバックの2つの引数を受け取ります。

以下は、ネイティブな日本語での表現例です:

最初の引数である「filepath」は、SQLiteデータベースの名前とパス(この場合は”./fish.db”)を受け入れます。2番目の引数は、データベースが作成され、データベースへの接続が確立された後に実行されるコールバックです。このコールバックは、データベース接続の確立時にエラーが発生した場合にエラーオブジェクトを設定するエラーパラメータを取ります。コールバック内で、if文を使用してエラーの有無を確認します。条件が真の場合は、console.error()メソッドを使用してエラーメッセージをログに表示します。

sqlite3.Database()クラスを使用してインスタンスを作成すると、プロジェクトディレクトリにSQLiteデータベースファイルが作成され、db変数に格納されたデータベースオブジェクトが返されます。データベースオブジェクトは、テーブルを作成したり、データを挿入、取得、または変更するために使用できるSQL文を渡すためのメソッドを提供します。

最後に、成功メッセージをログ出力するためにconsole.log()を呼び出し、db変数でデータベースオブジェクトを返します。

次に、テーブルを作成する関数を作成するために、強調されたコードを追加してください。

以下の内容を日本語で表現すると、「sqlite_demo/db.js」となります。
...
function createDbConnection() {
    ...
}

function createTable(db) {
  db.exec(`
  CREATE TABLE sharks
  (
    ID INTEGER PRIMARY KEY AUTOINCREMENT,
    name   VARCHAR(50) NOT NULL,
    color   VARCHAR(50) NOT NULL,
    weight INTEGER NOT NULL
  );
`);
}

createTable() 関数は、SQLite データベース内にテーブルを作成します。この関数は、データベースオブジェクト db をパラメータとして受け取ります。createTable() 関数内部では、db データベースオブジェクトの exec() メソッドを呼び出し、与えられた SQL 文をデータベースに実行するために送信します。exec() メソッドは、結果の行を返さないクエリにのみ使用されます。

exec()メソッドに渡されたCREATE TABLE sharks… SQL文は、以下のフィールドを持つsharksテーブルを作成します。

  • ID: stores values of INTEGER datatype. The PRIMARY KEY constraint designates the column as the primary key and AUTOINCREMENT instructs SQLite to automatically increment the ID column values for each row in the table.
  • name: details the name of the shark using the VARCHAR datatype that has a maximum of 50 characters. The NOT NULL constraint ensures that the field cannot store NULL values.
  • color: represents the color of the shark using the VARCHAR datatype with a maximum of 50 characters. The NOT NULL constraint signifies that the field should not accept NULL values.
  • weight: stores the weight of the shark in kilograms using the INTEGER datatype, and uses the NOT NULL constraint to ensure that NULL values are not allowed.

同じdb.jsファイル内で、createTable()関数を呼び出すために、以下のコードを追加してください。

sqlite_demo/db.jsを日本語に自然に言い換えてください。1つの選択肢でかまいません。

「sqlite_demo/db.js」

function createDbConnection() {
  const db = new sqlite3.Database(filepath, (error) => {
    if (error) {
      return console.error(error.message);
    }
    createTable(db);
  });
  console.log("Connection with SQLite has been established");
  return db;
}


function createTable(db) {
    ...
}

コールバックが実行されると、dbデータベースオブジェクトを引数としてcreateTable()関数を呼び出します。

次に、createDbConnection() 関数を呼び出すために、以下の行を追加してください。

...
function createDbConnection() {
    ...
}


function createTable(db) {
    ...
}

module.exports = createDbConnection();

前のコードでは、createDbConnection()関数を呼び出して、データベースへの接続を確立し、データベースオブジェクトを返します。そして、module.exportsを使用してデータベースオブジェクトをエクスポートし、他のファイルで参照できるようにします。

あなたのファイルには今後、以下の内容が含まれます。

下記の文を日本語で自然な言い方に言い換えると、次のようになります: sqlite_demo/db.js
const sqlite3 = require("sqlite3").verbose();
const filepath = "./fish.db";

function createDbConnection() {
  const db = new sqlite3.Database(filepath, (error) => {
    if (error) {
      return console.error(error.message);
    }
    createTable(db);
  });
  console.log("Connection with SQLite has been established");
  return db;
}

function createTable(db) {
  db.exec(`
  CREATE TABLE sharks
  (
    ID INTEGER PRIMARY KEY AUTOINCREMENT,
    name   VARCHAR(50) NOT NULL,
    color   VARCHAR(50) NOT NULL,
    weight INTEGER NOT NULL
  );
`);
}

module.exports = createDbConnection();

ファイルを保存して終了してください。もしnanoを使用している場合、終了するためにCTRL+Xを押し、作った変更を保存するためにyを押し、ファイル名を確定するためにENTERを押してください。

nodeコマンドを使用して、db.jsファイルを実行してください。

  1. node db.js

 

出力結果は、データベース接続が正常に確立されていることを示します。

Output

Connection with SQLite has been established

次に、lsコマンドを使用してfish.dbデータベースファイルが作成されているかを確認してください。

  1. ls

 

Output

db.js fish.db node_modules package-lock.json package.json

出力において、fish.dbデータベースファイルの表示が確認されることから、データベースが正常に作成されたことが確認されます。

今度、db.jsファイルを実行するたびに、データベース内にテーブルを作成するcreateTable()関数が呼ばれます。既に存在するテーブルを作成しようとすると、SQLiteはエラーをスローします。これを確認するためには、nodeコマンドを使用してdb.jsファイルを再実行してください。

  1. node db.js

 

今回、以下の出力に表示されるようにエラーが発生します。

Output

Connection with SQLite has been established undefined:0 [Error: SQLITE_ERROR: table sharks already exists Emitted ‘error’ event on Database instance at: ] { errno: 1, code: ‘SQLITE_ERROR’ } Node.js v17.6.0

エラーメッセージは、sharksテーブルがすでに存在していることを示しています。最初にノードコマンドを実行すると、魚のデータベースとsharksテーブルが作成されます。コマンドを再実行すると、createTable()関数が2回目に再実行されますが、既にテーブルが存在しているためエラーが発生します。

このエラーは、他のファイルでデータベースオブジェクトのメソッドを使用してデータベースを操作する場合にも発生します。例えば、次のステップでは、データベースにデータを挿入するファイルを作成します。データベースオブジェクトを使用するためには、db.jsファイルをインポートし、データベースにデータを挿入するための関連メソッドを呼び出します。ファイルを実行すると、db.jsが実行され、同じエラーが発生します。

これを解決するために、fsモジュールのexistsSync()メソッドを使用して、プロジェクトディレクトリ内のデータベースファイルfish.dbの存在を確認します。データベースファイルが存在する場合は、createTable()関数を呼び出さずにデータベースへの接続を確立します。存在しない場合は、接続を確立し、createTable()関数を呼び出します。

これを行うために、もう一度あなたのエディタでdb.jsを開いてください。

  1. nano db.js

 

あなたのdb.jsファイルに、データベースファイルの存在を確認するためのハイライトされたコードを追加してください。

以下は、日本語でのネイティブな表現です(ただし、1つのオプションのみ提供します):
sqlite_demo/db.js → sqlite_demo/db.js
const fs = require("fs");
const sqlite3 = require("sqlite3").verbose();
const filepath = "./fish.db";

function createDbConnection() {
  if (fs.existsSync(filepath)) {
    return new sqlite3.Database(filepath);
  } else {
    const db = new sqlite3.Database(filepath, (error) => {
      if (error) {
        return console.error(error.message);
      }
      createTable(db);
    });
    console.log("Connection with SQLite has been established");
    return db;
  }
}

最初に、ファイルシステムと対話するために使用される fs モジュールをインポートします。次に、追加された if 文の中で、与えられた引数であるデータベースファイル ./fish.db の存在をチェックするために fs.existSync() メソッドを呼び出します。ファイルが存在する場合、データベースファイルのパスを指定して sqlite3.Database() を呼び出し、コールバックを省略します。しかし、ファイルが存在しない場合は、データベースインスタンスを作成し、コールバックで createTable() 関数を呼び出してデータベース内にテーブルを作成します。

現時点では、完全なファイルは以下のように表示されます。

以下の文を日本語で表現しなおしてください(オプションは1つだけで十分です):
sqlite_demo/db.js
const fs = require("fs");
const sqlite3 = require("sqlite3").verbose();
const filepath = "./fish.db";

function createDbConnection() {
  if (fs.existsSync(filepath)) {
    return new sqlite3.Database(filepath);
  } else {
    const db = new sqlite3.Database(filepath, (error) => {
      if (error) {
        return console.error(error.message);
      }
      createTable(db);
    });
    console.log("Connection with SQLite has been established");
    return db;
  }
}

function createTable(db) {
  db.exec(`
  CREATE TABLE sharks
  (
    ID INTEGER PRIMARY KEY AUTOINCREMENT,
    name   VARCHAR(50) NOT NULL,
    color   VARCHAR(50) NOT NULL,
    weight INTEGER NOT NULL
  );
`);
}

module.exports = createDbConnection();

変更が終わったら、ファイルを保存して閉じてください。

db.js ファイルが複数回実行された際にエラーが発生しないようにするため、新しく始めるために rm コマンドで fish.db ファイルを削除してください。

  1. rm fish.db

 

db.jsファイルを実行してください。

  1. node db.js

 

Output

Connection with SQLite has been established

「db.jsがデータベースに接続し、db.jsファイルを再実行してもテーブルを再作成する試みを行わないかどうかを確認してください。」

  1. node db.js

 

今、もうエラーが出なくなったことに気づくでしょう。

SQLiteデータベースへの接続が確立し、テーブルが作成されたので、データをデータベースに挿入します。

ステップ3 — SQLiteデータベースへのデータ挿入

このステップでは、node-sqlite3モジュールを使用してSQLiteデータベースにデータを挿入する関数を作成します。挿入したいデータは、プログラムのコマンドライン引数として渡されます。

テキストエディタでinsertData.jsファイルを作成して開いてください。

  1. nano insertData.js

 

「insertData.js」ファイルに、コマンドライン引数を取得するための以下のコードを追加してください。

下記は、ネイティブの日本語での一つのオプションです。
「sqlite_demo/insertData.js」
const db = require("./db");

function insertRow() {
  const [name, color, weight] = process.argv.slice(2);
}

最初の行では、前のステップでdb.jsファイルにエクスポートしたデータベースオブジェクトをインポートします。2行目では、後でテーブルにデータを挿入するために使用するinsertRow()関数を定義します。関数内では、process.argvはコマンドラインの引数をすべて配列で返します。0番目の要素にはNodeのパスが含まれ、1番目の要素にはJavaScriptプログラムのファイル名が格納されます。2番目以降の要素は、ファイルに渡されたコマンドライン引数が含まれます。最初の2つの引数をスキップするために、JavaScriptのslice()メソッドを使用して配列の浅いコピーを作成し、2番目から配列の末尾までの要素を返します。

次に、データベースにデータを挿入するためのハイライトされたコードを追加してください。

「sqlite_demo/insertData.js」を日本語で言い換えると、「SQLiteデモ/データの挿入.js」となります。
const db = require("./db");

function insertRow() {
  const [name, color, weight] = process.argv.slice(2);
  db.run(
    `INSERT INTO sharks (name, color, weight) VALUES (?, ?, ?)`,
    [name, color, weight],
    function (error) {
      if (error) {
        console.error(error.message);
      }
      console.log(`Inserted a row with the ID: ${this.lastID}`);
    }
  );
}

前のコードでは、db.run()メソッドを呼び出しています。このメソッドには3つの引数があります:SQLステートメント、配列、コールバック関数です。最初の引数である「INSERT INTO sharks…」は、データをデータベースに挿入するためのSQLステートメントです。INSERT文のVALUESステートメントでは、挿入する値のコンマ区切りのリストを取ります。直接値を渡す代わりに、?のプレースホルダーを渡していることに注意してください。これはSQLインジェクション攻撃を防ぐためです。実行中、SQLiteは自動的にプレースホルダーをdb.run()メソッドの第2引数で渡された値の配列に置き換えます。

最後に、db.run()メソッドの第三引数は、データがテーブルに正常に挿入された際に実行されるコールバックです。もしエラーが発生した場合は、そのエラーメッセージがコンソールにログ出力されます。挿入が成功した場合は、this.lastIDが返す新しく挿入された行のIDと共に成功メッセージをログ出力します。

今、insertRow() 関数を呼び出すために、強調された行を追加してください。

以下の内容を日本語で言い換える(オプションを1つ提供):
sqlite_demo/insertData.js「sqlite_demo/insertData.js」

const db = require("./db");

function insertRow() {
  const [name, color, weight] = process.argv.slice(2);
  db.run(
    `INSERT INTO sharks (name, color, weight) VALUES (?, ?, ?)`,
    [name, color, weight],
    function (error) {
      if (error) {
        console.error(error.message);
      }
      console.log(`Inserted a row with the ID: ${this.lastID}`);
    }
  );
}

insertRow();

ファイルを保存して閉じ、その後、ファイルを「shark name」という名前、色、重さの引数と共に実行してください。

  1. node insertData.js sammy blue 1900

 

出力は、プライマリIDが1のテーブルに行が挿入されたことを示しています。

Output

Inserted a row with the ID: 1

異なる引数でコマンドを再度実行してください。 (Kotonaru hikusuu de komando o saido jikkō shite kudasai.)

  1. node insertData.js max white 2100

 

Output

Inserted a row with the ID: 2

前のコマンドを実行すると、sharksテーブルに2つの行が作成されます。

SQLiteデータベースにデータを挿入できるようになったので、次にデータをデータベースから取り出します。

ステップ4 — SQLiteデータベースからデータを取得

このステップでは、node-sqlite3モジュールを使用してSQLiteデータベースのsharksテーブルに保存されているすべてのデータを取得し、それらをコンソールにログ出力します。

最初に、listData.jsファイルを開いてください。

  1. nano listData.js

 

あなたの listData.js ファイルに、以下のコードを追加してすべての行を取得します。

「sqlite_demo/listData.js」を日本語で自然に言い換えると、次のようになります。

「sqlite_demo/listData.js」

const db = require("./db");

function selectRows() {
  db.each(`SELECT * FROM sharks`, (error, row) => {
    if (error) {
      throw new Error(error.message);
    }
    console.log(row);
  });
}

最初に、db.jsファイルでデータベースオブジェクトをインポートします。次に、SQLiteデータベース内のすべての行を取得するselectRows()関数を定義します。関数内部では、データベースオブジェクトdbのeach()メソッドを使用して、データベースから1つずつ行を取得します。each()メソッドには、SQL文とコールバックの2つの引数が必要です。

最初の引数SELECTは、sharksテーブルのすべての行を返します。二番目の引数は、データベースから行が取得されるたびに実行されるコールバックです。コールバック内では、エラーチェックを行います。エラーが発生した場合は、throw文を使用してカスタムエラーを作成します。データの取得中にエラーが発生しなかった場合は、データがコンソールに記録されます。

、「selectRows()」関数を呼び出すために、ハイライトされたコードを追加してください。

sqlite_demo/listData.jsの内容を日本語でパラフレーズすると次のようになります。
const db = require("./db");

function selectRows() {
  db.each(`SELECT * FROM sharks`, (error, row) => {
    if (error) {
      throw new Error(error.message);
    }
    console.log(row);
  });
}

selectRows();

ファイルを保存して終了し、その後ファイルを実行してください。

  1. node listData.js

 

コマンドを実行すると、次のような表示が出力されます。

Output

{ ID: 1, name: ‘sammy’, color: ‘blue’, weight: 1900 } { ID: 2, name: ‘max’, color: ‘white’, weight: 2100 }

前のステップで挿入したsharksテーブルのすべての行が出力されます。node-sqlite3モジュールは、各SQLの結果をJavaScriptのオブジェクトに変換します。

SQLiteデータベースからデータを取得できるようになったので、SQLiteデータベースのデータを更新します。

ステップ5 – SQLiteデータベースでデータを変更する。

このステップでは、node-sqlite3モジュールを使用してSQLiteデータベース内の行を更新します。そのために、プログラムに修正したい行の主キーを含むコマンドライン引数を渡します。また、行を更新するための値も指定します。

あなたのテキストエディタでupdateData.jsファイルを作成して開いてください。

  1. nano updateData.js

 

「updateData.js」ファイルに、レコードをアップデートするための以下のコードを追加してください。

sqlite_demo/updateData.jsを日本語で言い換えると、以下のようになります。
「sqlite_demo/updateData.js」
const db = require("./db");

function updateRow() {
  const [id, name] = process.argv.slice(2);
  db.run(
    `UPDATE sharks SET name = ? WHERE id = ?`,
    [name, id],
    function (error) {
      if (error) {
        console.error(error.message);
      }
      console.log(`Row ${id} has been updated`);
    }
  );
}

updateRow();

最初に、db.jsファイルからデータベースオブジェクトをインポートします。次に、データベース内の行を更新するupdateRow関数を定義します。関数内では、コマンドライン引数をidとnameの変数に展開します。id変数には更新したい行の主キーIDが含まれ、nameにはnameフィールドに反映させたい値が含まれます。

その後、SQLステートメントとコールバックという引数を持つdb.run()関数を呼び出します。UPDATE SQLステートメントは、名前のカラムを現在の値からname変数に渡された値に変更します。WHERE句は、id変数のIDを持つ行のみを更新することを保証します。db.run()メソッドには、値が更新された後に一度実行されるコールバックという2番目の引数があります。

最後に、updateRow()関数を呼び出します。

変更作業が終了したら、ファイルを保存して閉じてください。

指定した行のidと新しい名前を使って、updateData.jsファイルを実行してください。

  1. node updateData.js 2 sonny

 

Output

Row 2 has been updated

名前が変更されたことを確認してください。

  1. node listData.js

 

コマンドを実行すると、あなたの出力は以下のようになります。

Output

{ ID: 1, name: ‘sammy’, color: ‘blue’, weight: 1900 } { ID: 2, name: ‘sonny‘, color: ‘white’, weight: 2100 }

出力は、ID 2の行の名前フィールドの値が現在Sonnyであることを示しています。

それにより、データベース内の行を更新することができます。次に、SQLiteデータベースからデータを削除します。

ステップ6 — SQLiteデータベース内のデータを削除する

この部分では、node-sqlite3を使用してSQLiteデータベースのテーブルから行を選択して削除します。

あなたのテキストエディタでdeleteData.jsファイルを作成して開きます。

  1. nano deleteData.js

 

データ削除のための deleteData.js ファイルに、次のコードを追加してください。

以下のファイル、sqlite_demo/deleteData.jsを日本語で言い換えると:

sqlite_demo/deleteData.jsを削除

const db = require("./db");

async function deleteRow() {
  const [id] = process.argv.slice(2);
  db.run(`DELETE FROM sharks WHERE id = ?`, [id], function (error) {
    if (error) {
      return console.error(error.message);
    }
    console.log(`Row with the ID ${id} has been deleted`);
  });
}

deleteRow();

最初に、db.jsファイルでデータベースオブジェクトをインポートします。次に、テーブルsharks内の行を削除するdeleteRow()を定義します。関数内で、主キーIDを展開し、変数idに格納します。次に、2つの引数を取るdb.run()を呼び出します。最初の引数は、テーブルsharks内の行を削除するSQLステートメントDELETE from sharks…です。WHERE句により、id変数の値と一致する行のみが削除されます。2つ目の引数は、行が削除された後に実行されるコールバックです。成功した場合は、関数は成功メッセージをログに出力します。それ以外の場合は、エラーをコンソールにログします。

最後に、deleteRow()関数を呼び出します。

ファイルを保存して閉じ、次のコマンドを実行してください。

  1. node deleteData.js 2

 

Output

Row with the ID 2 has been deleted

次に、行が削除されたことを確認してください。

  1. node listData.js

 

コマンドを実行すると、出力結果は以下のように表示されます。

Output

{ ID: 1, name: ‘sammy’, color: ‘blue’, weight: 1900 }

IDが2の行は結果に含まれていません。これによって、その行が削除されたことが確認されました。

それにより、node-sqlite3モジュールを使用してSQLiteデータベース内の行を削除することができます。

結論

この記事では、node-sqlite3モジュールを使用してNode.jsアプリケーションを作成し、SQLiteデータベースに接続してテーブルを作成しました。次に、アプリケーションを変更して、データベース内のデータの挿入、取得、更新を行いました。最後に、アプリケーションを変更してデータベース内のデータを削除しました。

node-sqlite3のメソッドについてさらなる洞察を得るには、node-sqlite3のウィキページをご覧ください。SQLiteについて学ぶには、SQLiteのドキュメントを参照してください。SQLiteと他のSQLデータベースの比較を知りたい場合は、当社のチュートリアル「SQLite vs MySQL vs PostgreSQL:リレーショナルデータベース管理システムの比較」をご覧ください。Node.jsの学習を続けるためには、「How To Code in Node.js シリーズ」をご覧ください。

コメントを残す 0

Your email address will not be published. Required fields are marked *