node.js mysqlに接続してinsertを実行する

node.js mysqlに接続してinsertを実行する

node.jsのライブラリ「mysql」でmysqlに接続してinsertを実行するサンプルコードを記述してます。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

insertを実行

以下のコードは、「name , age」という2つのカラムをもつ、テーブル「person」にinsertを実行してデータを追加するサンプルコードとなります。

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 = "insert into person values ('kida', 63);"

    con.query(q, (err, result, fields) => {
        if (err) throw err;
        console.log(result)
    });
});

実行結果

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

console.log(result)
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}

mysql側でもデータが追加されたことが確認できます。

mysql> select * from person;
+--------+-----+
| name   | age |
+--------+-----+
| kida   |  63 |
+--------+-----+

また「?」や

con.connect((err) => {

    if (err) throw err;

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

    const q = "insert into person(name,age) values(?,?);"

    con.query(q, ['kimura', 58], (err, result, fields) => {
        if (err) throw err;
        console.log(result)
    });
});

SETを使用して、insertを行うことも可能です。

con.connect((err) => {

    if (err) throw err;

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

    const q = "insert into person SET ?;"

    con.query(q, { name: 'nakai', age: 38 }, (err, result, fields) => {
        if (err) throw err;
        console.log(result)
    });
});

上記の2つのコードを実行しても、mysql側でデータが追加されていることが確認できると思います。

mysql> select * from person;
+--------+-----+
| name   | age |
+--------+-----+
| kida   |  63 |
| kimura |  58 |
| nakai  |  38 |
+--------+-----+