RethinkDBについて。
以前Qiitaにこんな記事を投稿しました。
この頃は、RethinkDBもHorizonも初めてでよくわからないままつかっていました。
今あらためて、RethinkDBだけを触ってみよう!という記事です。
内容的にはこちらの記事と同じになりそうです。
ただ↑の記事ではPythonを使っておりまして、この記事ではJavaScriptを使います。
RethinkDBのインストールはこちら。
https://rethinkdb.com/docs/install/
JavaScript用のRethinkDBドライバがこちらです。
https://rethinkdb.com/docs/install-drivers/javascript/
そのまま起動
まずはそのまま起動します。「そのまま」とは、以下のコマンドを打ってみます。
$ rethinkdb
するとこのとおり。ローカルサーバがポート8080番で立ち上がりました。
ローカルのAdmin画面(http://localhost:8080)にアクセスします。
まずは、テーブルを見てみます。(http://localhost:8080/#tables)
デフォルトではtestというデータベースがありますね。ここに適当にテーブルを作成します。
salesという名前のテーブルを作成しました。
次にデータエクスプローラーという画面(http://localhost:8080/#dataexplorer)があるので、そちらからデータを登録してみます。
こちらが書いたクエリ。
実行してみると、
登録できたっぽいですね。countを実行して、チェックします。
ちゃんと反映されてますね!
GUIからでも充分ストレスなく操作できそうですね。
nodeから起動
次は、nodeを書いてコンソールで実行してみます。
参考にするのはこちらのページです。→ https://www.rethinkdb.com/docs/install-drivers/javascript/
書いたコードがこちら。
rethinkdbドライバをrequireして、connectメソッドやdbメソッド、tableメソッドなどを実行しています。
走らせてみましょう。
$ node server.js
(ちなみに、ここで1時間ハマりました。ハマった原因は記事の最後に書きます笑)
すると、コンソールで特に表示はなく、エラーが出なかったことがわかります。
では、もう1度Admin画面を起動して、テーブルを確認してみます。
ちゃんとNodeで書いたtv_showsテーブルが追加されてますね!
以上で、生のRethinkDBを触るのはおしまいです。また、Horizon経由で操作してみたり、今度はRethinkDBをどこかにホスティング?してみたりしようと思います。
(おまけ)ドライバが起動せずにハマった
先ほどのハマった件。結論から言うと、RethinkDB自体が起動しておらず、ドライバが読みに行けて(?)いませんでした…。
エラー内容:ReqlDriverError: Could not connect to localhost:28015.
RethinkDBのエラーについては、こちらに一覧があります。
https://www.rethinkdb.com/docs/error-types/
その中でも、ReqlDriverErrorは「もはやドライバのバグっぽいよ」と書いており、絶望しました…。
で、調べているうちにこんな記事が。
この方は、MySQLが起動していなかったので、起動したらアプリケーションが動いたとのこと。
そこで、「そっか、RethinkDBだってDBなんだし、ひょっとしてこれが動いてなくちゃ、ドライバだって機能しないかも?」との気付きが。
コンソールをもう1タブ開いて、RethinkDBを起動します。
$ rethinkdb
RethinkDBが起動します。ってか、よく見たら、Listening for client driver connections on port 28015と書いてありますね…涙
ドライバを使うには、DBが起動していてポートをリッスンしている必要があるんですね…。サーバサイドの知識が浅いので、こういう当たり前っぽいことにガッツリ引っかかってしまいました…。