日々精進

新しく学んだことを書き留めていきます

node

80番ポートをlistenするとError: listen EACCESエラーになる

80等の特権ポート(well-known portと同義?)をlistenするにはsudoで実行しないといけないらしい。 参考:http://rockf.es/blog/2012/02/02/node/

nodeでグローバルな定数を使う方法

Object.definePropertyを使えばいいらしい。なるほどー。 javascript - How do you share constants in NodeJS modules? - Stack Overflow

step.jsのgroupを使ったときに次の関数に渡される結果がすべてundefinedになる

以下のコードだとnumsがすべてundefinedの配列になる。 step( -> group = this.group() func = (done) -> done(1) for i in [0..10] setTimeout func(group), 100 , (err, nums) -> console.log nums )これは非同期関数のfuncの第一引数がエラーオブジェクト…

step.jsとcoffeescriptを一緒に使うと挙動がおかしくなる

step.jsを使って非同期処理をわかりやすくしようとしたらはまった。 step(-> request uri:uri headers: headers , this , -> console.log arguments )上記だと二段目の関数の引数にrequestオブジェクトが渡される。 responseが取れなくて、なぜ〜?と悩んで…

非同期メソッドのテストとpredictableNextTick

非同期メソッドのテスト方法についての記事にちょっと面白そうなことが書いてあった。 Make Your Tests Deterministic - How To Node - NodeJS 内容は以下。 非同期なメソッドを複数回呼び出しているメソッドのテストは難しい。 その理由は非同期なメソッド…

nodeのメモリリーク調査

アプリでメモリリークが起こっていたので調査したんだけど、これがちゃんと調べられるツールがなくて困った。 ・node-inspectorを使ってみたがだめ ↓を参考にnode-inspectorを使ってみたがなぜかProfilesボタンがブラウザに出てこず断念。チュートリアルと全…