Javascript (カレンダー008_データ保存先Node.js)

■データベース利用について検討する。

javascriptでデータベースを使用する方法を調べていたら、Node.jsというものがよくヒットした。Node.jsはサーバ側でjavascriptを動かすためのものらしい。実際にインストールして試してみた。

Node.jsは、インストール後にコマンドプロンプトなどでnode (ファイル名.js)といった形で動かすものらしい。jQueryと同様に、javascriptの中でインポートして使用するものとは少し違うのかな?データベースの取り扱いには、mysqlという名前のパッケージも必要とのことで、Node.jsのインストール後に「npm install mysql」のコマンドでmysqlもインストールした。

レンタルサーバで既にMysqlのデータベースはあったので、それに対して接続するようにホスト名や、ログインユーザ、パスワード、データベース名をプログラム上に記入し、node (ファイル名.js)で実行してみた。Timeoutのエラーとなってしまう。おそらくMysqlデータベースのconnect timeoutの設定が10秒となっているので、これによるものなのかな。ただ、レンタルサーバのMysqlのユーザは変更する権限がないので、これはどうしようもなさそう。

しかたないので、xamppをインストールして、自分のローカルサーバにMysqlを入れて同じように実行してみた。データベースの中身が表示されたので、うまく動いたよう。

node.jsファイルがしたのもの。

const mysql = require('mysql');

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

// 接続
connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }
  console.log('connected as id ' + connection.threadId);
});

// データの取得
connection.query('SELECT * FROM `sample_db`', function (err, results, fields) {
	if (err) { console.log('err: ' + err); } 

	console.log('name: ' + results[0].title);
	console.log('id: ' + results[0].note);
	console.log('name: ' + results[1].title);
	console.log('id: ' + results[1].note);

});
console.log('Check_display: ');

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

レンタルサーバのMysqlに接続できないかいろいろ試してみたけど、やはり接続できず。