momocloop で勉強しようとしてハマった事

npm xmas!
という訳で JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) : ATND も無事終了しましたね。毎年参加したいなと思いつつ今年も参加し損ねてしまいました。来年こそは、、、


本日は 「ももいろクリスマス2011 さいたまスーパーアリーナ大会」らしいので、皆さん「うりゃ」「おい」するんでしょうか。


僕は node.js 初心者なので最近 @sugyan さん作の sugyan/momocloop · GitHub をお手本に勉強しようと思い clone してきてローカルで動かしてみようとしていましたが、色々とハマってしまいました。


package.json があるものは落としてきて npm install すると依存モジュールをインストールしてくれる事は知っていたし、npm config で設定が必要な事も知っていたので config/example.sh を編集して必要な値を設定する事もしていましたが、なかなかうまく動かず、途中で node-inspector の存在を知り喜び勇んで使ってみましたが更にうまく行かない。


ふと思い返して npm configで設定値を管理 - すぎゃーんメモ を読み返してみると npm start で実行しないと設定値を読み込まないという事を忘れていました。(node-inspector は node --debug script 名 で実行する必要がある)


じゃあどうすればいいのかと調べてみると package.json に

"scripts": {"start": "node server.js"}

というデフォルト設定がある事がわかりました。これを

"scripts": {"start": "node --debug server.js"}

とする事で無事 npm start で起動して、node-inspector でデバッグする事ができました。


あと twitter の oauth ログイン部分である lib/routes.js は

var twitter = new oauth.OAuth(
    'https://api.twitter.com/oauth/request_token',
    'https://api.twitter.com/oauth/access_token',
    process.env.npm_package_config__twitter_consumer_key,
    process.env.npm_package_config__twitter_consumer_secret,
    '1.0',
    "http://localhost:3000/signin",
    'HMAC-SHA1'
);

の様にコールバック先の指定が必要ですね。この辺は初歩的な事なんだと思いますが。


あとなんか redis にうまく値を保存していない様なんですが、この辺はまだ追いかけていません。どうも本家 momocloop も落ちている様ですし、、、


何はともあれ色々調べるきっかけになりましたし、アプリケーションの構造もぼんやりとではありますが理解する事ができました。@sugyan さんありがとうございました。