node.js mysqlに接続してデータを取得する

node.js mysqlに接続してデータを取得する

node.jsのライブラリ「mysql」でmysqlに接続してデータを取得するサンプルコードを記述してます。nodeのバージョンは14.15.1となります。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V14.15.1
  • npm 6.14.8
  • mysql 8.0.20-11

mysqlインストール

mysqlを使用して、接続するので、npmでインストールしておきます。

npm i mysql

データを取得

先にデータを、取得する対象のテーブルにデータを追加しておきます。

mysql> insert into person values ('suzuki', 25);
Query OK, 1 row affected (0.06 sec)

mysql> insert into person values ('tanka', 30);
Query OK, 1 row affected (0.06 sec)

mysql> insert into person values ('nakata', 33);
Query OK, 1 row affected (0.05 sec)

mysql> select * from person;
+--------+-----+
| name   | age |
+--------+-----+
| suzuki |  25 |
| tanka  |  30 |
| nakata |  33 |
+--------+-----+

以下は、mysql接続して「person」というテーブルからデータを取得するサンプルコードとなります。

const mysql = require('mysql');

// DBに接続する設定情報
const con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'NodeTest'
});

con.connect((err) => {

    if (err) throw err;

    console.log('接続完了');

    const q = "select * from person"

    con.query(q, (err, result, fields) => {
        if (err) throw err;
        console.log(result)
        console.log(result[0].name)
        console.log(result[1].name)
        console.log(result[2].name)
    });
});

実行結果

console.log('接続完了');
接続完了

console.log(result)
[
  RowDataPacket { name: 'suzuki', age: 25 },
  RowDataPacket { name: 'tanka', age: 30 },
  RowDataPacket { name: 'nakata', age: 33 }
]

console.log(result[0].name) // suzuki
console.log(result[1].name) // tanka
console.log(result[2].name) // nakata