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に接続できないかいろいろ試してみたけど、やはり接続できず。