読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

Node.jsでのMySQLとのアクセス

Node.js
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から利用する