Node.jsからMySQLに接続する
Node.jsからMySQLへの接続を試してみます。npm
MySQLへの接続はこちらのライブラリを使用することにしました。
https://www.npmjs.com/package/mysql
npmでインストールします。
$ npm install mysql
接続サンプルはこんな感じになりました。
- 'use strict'
- const mysql = require('mysql')
- // データベース接続
- const con = mysql.createConnection({
- host : '192.168.1.102',
- user : 'admin',
- password : 'P@ssw0rd',
- database : 'sample'
- })
- con.connect()
- con.query('SELECT CURRENT_TIMESTAMP', (err, results) => {
- console.log(results)
- })
- // 切断
- con.end()
実行結果
$ node index.js
[ RowDataPacket { CURRENT_TIMESTAMP: 2018-07-01T07:32:52.000Z } ]
ちゃんとデータベースに接続できたようです。
データの登録と更新、削除
データの登録などを試してみます。
サンプルとして、こんなテーブルを作成しておきました。
CREATE DATABASE sample;
USE sample;
CREATE TABLE test (
id INT NOT NULL AUTO_INCREMENT,
value text NOT NULL,
PRIMARY KEY (id)
);
サンプルはこんな感じになりました。
- 'use strict'
- const mysql = require('mysql')
- // データベース接続
- const con = mysql.createConnection({
- host : '192.168.1.102',
- user : 'admin',
- password : 'P@ssw0rd',
- database : 'sample'
- })
- con.connect()
- // データの登録
- con.query('INSERT INTO test SET ?', {value:'登録テスト'}, (err, results) => {
- console.log(results)
- const insertId = results.insertId
- con.query('SELECT * FROM test WHERE id = ?', [insertId], (err, results) => {
- console.log(results)
- con.query('DELETE FROM test WHERE id = ?', [insertId], (err, results) => {
- console.log(results)
- // 切断
- con.end()
- })
- })
- })
AUTO_INCREMENT列に採番された値は、結果の「insertId」に格納されています。
SELECTでは、insertIdの番号をプレースフォルダを使用してクエリーに埋め込み検索しています。
実行結果
$ node index.js
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 6,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
[ RowDataPacket { id: 6, value: '登録テスト' } ]
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
いい感じです。
コメント