はじめてのNode.js覚え書き③

はじめてのNode.js覚え書き① - uramonk's blog
はじめてのNode.js覚え書き② ECONREFUSEDが発生する - uramonk's blog

本の第12章を参考にスマートフォン用BBSを作成していましたが、 MongoDBやJQueryのバージョンが異なるためうまく動作しない箇所がありました。

MongoDB

getLatestを実行してデータベースからtopicを取得しようとすると、下記のようなエラーが発生しました。

MongoError: Can't canonicalize query: BadValue bad order array [2]

内容からして、下記ソートを行う箇所でエラーが発生している感じでした。

cursor.sort([['date', -1]]).limit(end -start).skip(start);

エラー内容で検索したところ、下記サイトを見つけました。stackoverflow.com

こちらを参考に下記のようにコードを変更したところ、うまく動作するようになりました。

cursor.sort({'date':-1}).limit(end -start).skip(start);

JQuery

mobbs.jsファイル内で、pagebeforeshowイベントハンドラーを定義していたのですが、Webページにアクセスしてもこちらのコードに到達されませんでした。
調べたところ、バージョンアップによってlive()が使えなくなり、代わりにon()を使うようにする、さらに引数の記述方法も変わっていました。h2ham.net

サイトを参考に、こちらのコードを、

$('#topics').live('pagebeforeshow', function (e, data) {

下記のように変えたところ、イベントをキャッチすることができるようになりました。

$(document).on('pagebeforeshow', '#topics', function (e, data) {