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

yy_taroのとりとめのない落書き

メインフレームの導入・設計・構築ができるぐらいの知識があったりする。

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニックを読んで 2

yy-taro.hatenablog.com

引き続き本書を読んでいますが、再びはまった箇所があったので覚書。

今回は、第04章の05データベースの使い方です。

この章では、Web上から取得した様々なデータを保存する方法が記載さています。

主にデータベースを利用してデータを保存したり、保存したデータを出力するといった基本的な内容です。

掲載されているソースコードが一部略されているので、自分で実装するか作者のホームページからソースコードをダウンロードするかの二択です。

私は、後者でしたが、どちらの場合でも写経していると上手くいかないポイント?というかバグ?があります。

NoSQLから「LevelDB」を使う簡単なテストプログラム(leveldb-test.js)に「testKeys();」という不思議な関数が挿入されています。

この関数は、今回のテストプログラムに不要なものなので削除すると上手く動きます。

この不思議な関数は、次の「LevelDB」で検索するプログラム(leveldb-test2.js)に定義されています。

こちらのプログラムをそのまま実行すると本書に記載されている結果と同じくならず混乱する方(私です)もいるかもしれません。

なぜなら「testKeyValues()」関数が定義されているのに使われいません。

なので、testKeys()関数の最後に上記の関数を定義してあげれば、プログラムが完成します。

やっと半分まで読みましたが、いまのところこのニカ所がはまったポイントでした。

きっとこれは、作者がただ何も考えずに写しているだけでは、勉強にならないということでこっそり仕掛けたバグかもしれませんね。

なかなか粋な作者です。

これで引っかかるのは私だけかもしれませんが、何かの役に立てば幸いです。