新人Webエンジニアの記録。新人Webエンジニアの記録。新人のWebエンジニア、「ファガイ」が書く日々の日記。NodeJS最新版でチャットシステム。282012NodeJS最新版でチャットシステム。(2012/11/28現在)こんにちは。本日は、NodeJSを使って、簡易的なチャットシステムを作ろうと思います。今回は、expressとsocket.ioを使ったシンプルなチャットアプリケーションを作成します。私が確認する限り、express3.x系での解説がなかったようなので、記事を書いております。chatにて公開しております。0.8.15Nodeのインストールまず、公式サイトのhttp://nodejs.org/download/からダウンロードをします。Installerの64bit。ダウンロード後、そのファイルを実行。このような画面が出るので、nextで進んで行けばOKです。これでインストール終わり。準備まずは、nodeの勉強するためのフォルダを作っておきます。今回は、ユーザーディレクトリ内にnodeworkというフォルダを作成することにします。promptを使います。いうかそれしか使っていません。nodework最新のNodeには、npmが標準でインストールされています。npmというのは、NodeJSのパッケージ管理しているツールです。入っているか、確認しておきます。-v1.1.16入っているようです。npmのアップデートをやっておきましょう。-ggオプションはグローバルという意味です。npmを管理しているディレクトリ内のパッケージを指します。つけない場合は、カレントディレクトリとなります。(私の場合、バージョンアップはありませんでした。)今回はexpressと、socket.ioを使用します。expresssocket.ioは、chatフォルダにて行う必要があります。グローバルインストールもしてていいかも。socket.iows@0.4.23がなにか出てきますが、気にしなくて大丈夫です。必要なパッケージがインストールできたので、早速作りましょう。installします。ついでに言っておくと、-tejsとしましたが、これはテンプレートエンジンです。ejsというテンプレートエンジンを今回は使用します。準備もできたので、まずは、動かしてみましょうか。app.jsと打ってみましょう。ファイアウォールが出てきますが、アクセスを許可するを押しましょう。3000となればOKです。ブラウザでhttp://localhost:3000/にアクセスしましょう。Expressが表示されていれば、OKです。表示も確認できたので、エクスプローラにてフォルダを確認してみましょう。解説node_modulesフォルダ:npmでインストールされたモジュールが入っています。publicフォルダ:公開されるフォルダ。routesフォルダ:名前の通り。自分はほとんど使ってない。viewsフォルダ:viewです。app.js:これがサーバーサイドのコア部分。package.jsonは現状では気にしなくていい。アプリケーションのバージョン管理とかでおそらく使うはず。app.jsを確認してみましょうか。確認するのは、メモ帳以外なら多分OKです。textとかnodepad++とかVisualStudio2012だと思うので心配しなくてもよかったですね。textでの編集です。app.get(‘port’));});“`はい。まあまあの行数ですかね。簡易的に説明をしていきます。requireはモジュールのロードです。(jsは省略できます。index.jsも省略できます。)app変数にはexpressのインスタンスが入っています。app.configureにて、基本的な設定を行っています。app.configure内で、確認すべき点は、portの部分、(ポートの設定です。)viewsの部分、(viewを置く場所です。engine、(テンプレートエンジンです。(公開フォルダの場所です。app.configure(‘development’は、開発環境用の設定です。app.getは、GETリクエストです。第1引数が、ルートからのパス。routes.indexは、routesが読んでいるファイルが、/routesなので、/routes/index.jsを確認してみると設定がされています。簡単に言えば、res.renderが表示用のメソッドです。第1引数に、テンプレートのファイル名(js除く)、第2引数が、json形式でテンプレートエンジンに渡す変数を指定していきます。http.createServer(app)は、サーバーを立てるメソッドです。listenメソッドを使い、ポートを指定します。これがないとサーバーが動きません。ここで、ドキュメントマニュアルを紹介しておきます。Referenceざくざくと紹介をしていくので、わからないときには公式マニュアルを見るとよいです。この状態ではsocket.ioを使うことができませんので、socket.ioを使える形にapp.jsのソースを変更します。