この記事は公開されてから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などもやっていきたい。