"Diary" インターネットさんへの恩返し

いつもソースコードコピペばかりなので,みなさまへ少しばかりの恩返しを

Node.js / express / ejs / mongodbでなにか作るときの役立つリンク



スポンサーリンク

ここ数週間ぐらい、node.jsとmongodbでwebアプリを作っている。その中で参考になった良リンクをここに。

実践Node.js プログラミング (Programmer's SELECTION)

実践Node.js プログラミング (Programmer's SELECTION)

[目次]

Javascriptの基礎(Node.jsプログラミングで特に意識すること)

Node.jsではフロー制御(関数Aを実行後、関数Bを実行するなど)を行う上で、コールバック関数を使って処理のフローを作ることが多くなる。コールバック関数とは関数Aを実行後、次に実行する関数のこと。その基礎などを以下にメモ。

Node.js入門

Node.jsの入門書はあまり、書籍では数がないので出ていないので、ネットに出ている情報をベースに勉強することが中心。強いていうならこの本(Smashing Node.js: JavaScript Everywhere (Smashing Magazine Book Series)
)とかがお薦め。(ディスカウント前の3000円くらいで買った。今は1300円位だからお得)

Expressの入門

ExpressのテンプレートEJSの使い方

Node.jsでWebテンプレート。ページのテンプレートを作って、そのページを呼び出す際に、変数を与えて、Webページのタイトルだけ都度動的に変えるなどが可能です。jadeっていうものあるけど、EJSのほうが、なんとなくわかりやすい。

セッション管理

ログインが必要なサイトとか作る場合にセッション管理が必要ですが、その実装方法が書いてあります。

mongodb関連

バックグラウンド実行

node.jsはそのままでコンソール立ち上げっぱなしのプロセス起動になってしまうので、バックグラウンド実行にします

apacheとの共存

node.js自体がwebサーバなので、他のapacheベースのwebサイトとサーバを共存させたい場合にこの処理でうまくいきます

開発環境補足

  • Vagrantの共有ディレクトリへプログラム移動
    • PC上のAptanaからvagrantのnode.jsプログラムディレクトリに直接変更が加えれるように、ゲストOS上の/vagrantにnode.jsアプリフォルダを移動した。(/vagrantディレクトリはデフォルトでホストOSとの共有ディレクトリになってるのでアクセスができる)

npm(node.jsのモジュールなどのパッケージ管理ソフト)

作りはじめて、現在の感想

いろんな所にでているけど、Node.jsの特徴は以下の通り。これらが必要ない場合はNode.jsは扱わない方がいいと感じた。

  • 非同期処理が必要
  • リアルタイムWeb(Webソケットとか)をしたい
  • 大量アクセセスをさばく必要があり

普通にapatchと、phprubyで作ったほうがよほど安定して、作りやすく、メンテも楽。なんたって特に特定の順次フローが必要な処理をnode.jsが実施する場合コールバック地獄に陥り、さらに同期できるモジュールを入れたとしてもなんか不安。

あとmongodbだけど、リレーションを持たないようなデータ格納には便利だけど、ユーザ管理やレコードとのヒモ付が少しでも出てくるようなら、普通のmysqlとかRDBMSを使ったほうが、便利でよい。

なのでちゃんとした処理順序を意識したロジックが必要で、さらにデータにリレーションを持たせる場合はnode.js/mongodbは最悪な組み合わせと感じました。(数週間後考えは変わるかも。。。)

とりあえず、これが今の感想。