NodeKnockOutに参戦して、脱落した話

今年はNode学園祭を来週に控え、CROSSの準備をしたり、Fluentd meatup #3に参加したりしてたら、家族マイルがゼロになり、昨年のように日曜出勤扱いで取り組めないは、娘がこじらせた風邪に感染したりして、散々な状況でのNode KnockOutへの参戦となりました。

余談ですが、meetup後のmeatupでちらっと話したtcpでのheartbeatは、僕が帰宅する頃に開発が始まっていて、昼休みにはコードがコミットされていました。モヒカンまじコエェ。

余談2ですが、来年2013年1月18日に開催されるCROSSでは、割りととんでもないセッションが盛り沢山です。とりわけ僕が怖いのは @takesako さん率いるセキュリティのセッションと、 malaさん率いる「体系的に学ぶ安全な利用規約の作り方」です。僕が楽しみなのは、 @Jxck_ さん率いる、次世代Webとタグが爆発しているTech 10です。その他もものすごい見たいんですが、次回はUstで全部見ると、4時間x7トラック+αで1日では見終わりません。

本題

※この記事は「東京Node学園祭アドベントカレンダー」の28日目です。

上で言い訳を書いたんですが、結果としては、Node KnockOutは挫折しました。すみません。。。

ただ、その過程でいろいろ発見があったので、まとめておきます。

passport

ちょっと前までOAuth系の認証はnode-oauthを使っていましたが、passportを今回使ってみたら割りと使い勝手が良かったです。

設定はOAuthに比べて少し面倒ですが、middlewareとして使うのに、楽です。

app.get('/account',
  ensureLoggedIn('/login'),
  function(req, res) {
    res.send('Hello ' + req.user.username);
  });

上記のようにすることで、/accountにアクセスすると、認証を確認して、ダメなら/loginに飛ばしてくれます。

npm install --save

Jedの発表でもありましたが

$ npm install XXX --save

とすると、package.jsonに追記してくれるので良いです。

Express3.x(connect2.3+)とSocket.IOでのセッション管理

気がついたらみんな進化が早くて、昔 @Jxck_ が書いてたSocket.IO と Express でセッションの共有 (2011/8/9)のは全然使えなくなってて、ハマった。

あと、connectのバージョンも上がっていて、parseCookieもなくなって、cookie モジュールを使うようになってた

$ npm install cookie

その他

タイミングかもしれないけど、socket.ioのauthorizationの時のhandshakeデータのcookieにsidが入ってこなくて結構時間を食ったり、Twitterの認証が不安定で疲れた。。。

所感

今年のKOは全体にゲーム、チャット、よくわからないもの(笑)で構成されてるぽい

気になったのは下記の作品です

Node KnockOutのサンプルを見て興味を持たれた方

Nodeは非常に面白く、様々な可能性を持つ言語だと思います。興味を持たれた方は、本番はすでにチケット完売ですが、懇親会はまだ余っています。 海外コミッター勢も参加するので、ぜひ、生の開発状況や利用状況を聞いてみたい人はお越しください!