Nodeでの
MySQLの接続方法を説明します。
Nodeがインストールされていることが前提です。また
MySQLの設定は
ユーザ:
root
PASS:
admin
DB:
testdb
table:
testtable
field:
uid, name, password
とします。
◆パッケージのインストール
$ npm install mysql
◆データベース認証用の設定ファイルの作成
config.
jsonという名前で設定ファイルを作ります。
別にわざわざ設定ファイルを作らずとも直書きで動きますが、今後実装することを考えるとこういう書き方を知っておいたほうがいいという事で。
config.json
{
"databaseAuth": {
"user": "root",
"password": "admin",
"database": "testdb",
"host": "localhost",
"port": 3306
}
}
◆プログラム
mysql.js
var mysql = require('mysql');
var config = require('./config'); //configの読み込み
var connection = mysql.createConnection(config.databaseAuth);
var sql = 'SELECT * FROM testtable WHERE name = ?';
var userName = 'admin';
connection.connect();
var query = connection.query(sql, [userName], function(err, results) {
if (err) {
console.log(err);
}
connection.end();
console.log(results);
});
結果はレコードが配列で返ってきます。
注意は
プレースホルダー「?」に対応する値を配列[]で記述することです。
「?」が
複数ある場合はその順番に[foo, bar]と記述していきます。
◆実行
$ node mysql.js
とすればあらかじめ入力していたデータが取得出来ます。
{
uid: 1,
name: 'admin',
password: '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918'
}
◆補足
プログラムでの
var query = connection.query(sql, [values], callback)
ではcallbackを指定せずにあとからイベントを設置する方法もあります。
var query = connection.query(sql, [values]);
query.on('error', function(err) {
console.log(err);
});
query.on('result', function(results) {
console.log(results);
});
query.on('end', function() {
connection.end();
});
といった感じですね。
ソース:
MySQLで書いてあるDBをNode.jsから利用する