node
generator-angularはインストールしているのになぜ・・・と思いyo doctorを実行すると 以下のメッセージが出た。 [Error] NPM root value is not in your NODE_PATH [info] NODE_PATH = /usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript NPM ro…
executingFileName = process.argv[1].replace(/^.*[\\\/]/, '')参考:javascript - How to pass command line arguments to Node.js? - Stack Overflow
logs4jsを使ってログを出力しているが、ログの出力先を~/logs/app.logのように指定しても出力できなかった。 以下のようにすると出力できた。 log4js.configure({ appenders: [{ "type": "dateFile", "filename": "#{process.env["HOME"]}/logs/#{executingF…
原因はプロキシ設定とhttps接続を使っていること。 以下を実行すると直った。 npm config set proxy http://yourproxy npm config set registry http://registry.npmjs.org/proxyにhttpsのプロキシを指定したらそれだけでいけるかも。 参考:Node.js - Windo…
node_module/iconvが壊れていることが原因っぽい。前はちゃんと動いてたんだけど。。 以下のようにしてnode_module/iconvを自分でビルドし直すと直る。 cd ./node_module/iconv node-gyp configure node-gyp build参考:linux - Cannot find module /build/D…
log4jsを使うと簡単にできる。 npm install log4jsでインストールし、以下のようにしてログを出すと日時がつく。ログレベルも指定出来る。 var log4js = require('log4js'); var logger = log4js.getLogger(); logger.debug("Some debug messages");ログレベ…
原因はPATHが通っていないこと。 ~/.zshrcに以下を追加すると直った。 export PATH=/usr/local/share/npm/bin:$PATH参考:osx - Command not found after npm install in zsh - Stack Overflow
nodeのバージョンが古いことが原因。0.10.5だったのを0.10.31にupdateしたら直った。 nodeのupdateは英語版公式サイトからインストーラをダウンロードしてインストールする。 node.js Node.js 日本ユーザグループは情報が古いので注意(最新安定版のバージョ…
下記メソッドで変更出来る。 process.chdir('/Users')cronなどからnodeを実行するとworking directoryがプロジェクトのルートディレクトリにならないのに困っていたが、これで解決出来そう。
現象は以下。 ・Socket.ioでクライアントと接続している ・同時接続数が700ぐらいになると新規に接続出来なくなる ・しばらくすると既存の接続も切れ始める 最初はファイルディスクリプタの上限設定を疑ったが、上限を変更しても改善しなかった。 原因はip_c…
以下でできる。 var util = require('util'); console.log(util.inspect(obj,false,null));参考:Wokashi: Node.jsでオブジェクトの中身を全て表示する
Macのnodeのアップデートは公式サイトからインストーラをダウンロードして実行するのが一番簡単っぽい。 npmを使ってアップデートする方法はなぜかsudo n stableを実行するとエラーになりうまくいかなかった。 ほんとはnvmとか使うのがいいんだろうけど、ひ…
Karmaを使ってautorunとcode coverageやろうと思ったんだけど、Karmaはブラウザでのテスト実行しかサポートしてないらしい。残念。。 参考:node.js - How to test nodejs backend code with Karma (testacular) - Stack Overflow
mochaでテストを書いていて、nullかどうかをassertするのにshould.not.exist(obj)と書いたところ、以下のエラーが出た。 TypeError: Object # has no method 'exist'これはshouldがロードされていないため。下記を実行すると直った。 should = require "shou…
2013-05-02 - 日々精進で紹介した方法をアレンジしてファイル単位で テストを実行できるようにした。 あとsearch pathを設定する方法 - 日々精進のsearch pathを設定する方法も使ってテストファイル内でもrequire "hoge"できるようにした。 mocha.coffeeを↓…
自分で作ったクラスをrequireで読み込むとき、相対パスを書くのが面倒なので search pathを設定できないものか、と思っていたらやる方法があった。 process.cwd()はプロジェクトのルートディレクトリ(多分nodeのプロセスのカレントディレクトリ)の絶対パスを…
aws-sdkを使ってSNS経由でメールを送信するクラスを実装し、Mochaでテストするとメールが送信されず困った。 原因は非同期処理なのにdoneを使っていなかったのでレスポンスが返ってくる前にテストが終了してしまっていたこと。 しばらく触ってないとこんな初…
EC2だと700〜1000接続ぐらいでエラーが出てそれ以上接続数が増えない。サーバ側で出るエラーメッセージは以下。後で調査する。 debug: fired close timeout for client AV0UBEHqIjWeD0bb28jn info: transport end (close timeout) debug: cleared heartbeat …
requestモジュールを使ってリクエストを送信したところ、サーバにリクエストが届かない現象が起きた。 原因はプロキシサーバ経由でないとインターネットにアクセスできない環境なのにプロキシを設定していないこと。 以下のようにプロキシ設定してやればOK。…
下記コマンドでcoffee-scriptをインストールした後、coffeeを実行するとcommand not foundになった。 npm install -g coffee原因はパッケージのインストール先にPathが通っていないから。 以下を実行してPathを通せば直る。 export PATH=/usr/local/share/np…
以下のようなメッセージが出まくり、1,2日でログが8GBぐらいたまってしまうという現象が起きた。 debug: setting request GET /socket.io/1/xhr-polling/xIPscInKp3pX77b0NeGy?t=1377280474574 debug: setting poll timeout debug: clearing poll timeou…
HTTP1.0にしか対応してないらしい。 よってsquidプロキシサーバを経由してWebSocketで通信できない。まじか。。 こてさきAjax:HTTPで、サーバーPushサービス Server-Sent Events - livedoor Blog(ブログ)
○root権限でnodeを実行する この方法は以下の問題があるのでやるべきでない。 ・nodeのプロセスがroot権限を持つのでセキュリティリスクがある ・rootユーザがnodeを実行できるようにnodeをインストールしたりする必要がある。これが結構めんどくさい。前に…
これは以下のように#で始まるコメントがシェルスクリプトに入っていることが原因。 # comment 直接シェルスクリプトを実行すると問題ないんだけどなぁ。同じようにコメントは無視してほしい。
node-pm2でnodeを起動したら以下のエラーを吐く。 [start_dev_rate_distribution_server.sh err (l621)] SyntaxError: Unexpected token ILLEGAL [start_dev_rate_distribution_server.sh err (l622)] at Module._compile (module.js:439:25) [start_dev_rat…
EC2はパスが特殊だからっぽい。 以下のようにシンボリックリンクを作成すれば直る。 下記パスはnvm使ってる場合。 sudo ln -s /root/.nvm/v0.10.13/bin/node /usr/bin/node sudo ln -s /root/.nvm/v0.10.13/lib/node /usr/lib/node sudo ln -s /root/.nvm/v0…
nodeをソースコードからビルドすると結構時間がかかる。EC2のマイクロインスタンスだと数十分かかる。 nvm経由でインストールするとビルド済みバイナリをダウンロードしてくれるようで、すぐにインストールできる。 インストール時のコマンドは以下サイト参…
well known portはrootユーザでないとlistenできない。 sudo nodeすればlistenできるようになる。 参考:http - Node.js EACCES error when listening on most ports - Stack Overflow
socket.ioを使えばできるらしい。 apache - Is it possible to use port 80 for both HTTP and web socket traffic? - Stack Overflow ロードバランサを使っていれば以下のようにしてもOK。 ・LBへのリクエストは80番ポートで受ける ・LBはnodeサーバの3000…
wsモジュールを使って接続しようとしてできないと以下の例外が発生する。 events.js:66 throw arguments[1]; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:768:11) at Object.afterConnect [as oncomplete] (net.js…