node.js + mysqlでMySQLに接続し、テーブルからデータを取得する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

おばんです、最近EM20を聞いて巨災対をイメージしながら仕事をしている田中です。

webとかその周辺知識が欲しくなってnode.jsはじめました。AWS Lambdaとか使うとサクッとオープンなものも作れるそうですしね。

環境

node.jsを扱うためにはmysqlというパッケージを使います。

  • node.js: v6.2.2
  • mysql: 2.11.1
  • MySQL: 14.14

前提

今回はすでに作成済みのデータベースにnode.jsからアクセスしてデータを取得します。

MySQLの準備

こちらを参考にさせていただきました。

MacにMySQLをインストールして触ってみる | Developers.IO

作成済みのデータについて

先述したリンクを参考に作成したデータベース、テーブル、レコードは以下のような状態になっています。

  • データベース名:testdatabase
  • テーブル名:userdata
id name
1 TanakaKenji

node.js側の準備

mysqlのインストール

プロジェクトのルートディレクトリでmysqlパッケージを追加

$ npm install mysql

ソースコード

コード全文は以下の通り。

// requireの設定
const mysql = require('mysql');

// MySQLとのコネクションの作成
const connection = mysql.createConnection({
	host : 'localhost',
	user : 'root',
	database: 'testdatabase'
});

// 接続
connection.connect();

// userdataの取得
connection.query('SELECT * from userdata;', function (err, rows, fields) {
	if (err) { console.log('err: ' + err); } 

	console.log('name: ' + rows[0].name);
	console.log('id: ' + rows[0].id);

});

// userdataのカラムを取得
connection.query('SHOW COLUMNS FROM userdata;', function (err, rows, fields) {
	if (err) { console.log('err: ' + err); }

	console.log(rows[0].Field);
	console.log(rows[1].Field);
});

// 接続終了
connection.end();

出力結果

name: TanakaKenji
id: 1
id
name

解説

mysql.createConnection({});

データベースに接続するための情報を書く。 passwordが設定されている場合などはそれも書く。

connection.euqry(<SQL文>, function (err, rows, fields) {});

書いたSQL文の取得結果を{}内で処理する。

まとめ

SQL文とデータベースに関する知識もつけていく必要がある。

今回は前もってターミナルを用いてあらかじめデータベースを作っていたが、node.jsからデータベースの作成、テーブルの作成、レコードのinsertなどもやっていきたい。

参考