node.jsにexpressをインストールしてみた

chakemiです。三連休で完全に生活リズムが崩れてしまいました。

本日はnode.jsでwebアプリを作成する際に、便利なフレームワークexpressを インストールしてみます。

node.jsやパッケージマネージャーのインストールはこちらを参考に。

構築環境

  • CentOS5.5
  • node.js v0.4.11
  • npm 1.0.27 ※node自体のバージョン管理ツールも入れておけばよかったと今頃気づきました。。。

ではさっそくnpmでexpressをインストールしてみます。 -gオプションは前にも書きましたが、コマンドを提供しているパッケージをインストールする際 付与することでグローバルインストールとなりシンボリックリンクを張ったような形で使用出来ます。 って、こんな説明でいいのかな?

1
2
3
4
5
6
7
[root@localhost ~]# npm install -g express
/usr/local/bin/express -> /usr/local/lib/node_modules/express/bin/express
express@2.4.7 /usr/local/lib/node_modules/express
├── mime@1.2.4
├── qs@0.3.1
├── connect@1.7.1
└── mkdirp@0.0.7

インストールが無事完了したので、expressでtest01というアプリを作成してみます。

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~]# express test01
   create : test01
   create : test01/package.json
   create : test01/app.js
   create : test01/views
   create : test01/views/layout.jade
   create : test01/views/index.jade
   create : test01/public/javascripts
   create : test01/public/images
   create : test01/public/stylesheets
   create : test01/public/stylesheets/style.css

作成したtest01ディレクトリの配下にwebアプリのひな形が作成されますので、 必要なモジュールをインストールします。

必要なモジュールの情報は[package.json]に纏められているので 下記のようにしてインストール。

1
2
[root@localhost ~]# cd test01/
[root@localhost test01]# npm install

※インストールの際、詳細を見たい場合、-dオプションをつけると 下記のようにnpmの細かい情報が見れます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[root@localhost test01]# npm install -d
npm info it worked if it ends with ok
npm info using npm@1.0.27
npm info using node@v0.4.11
npm info preinstall application-name@0.0.1
npm info addNamed [ 'jade', '>= 0.0.1' ]
npm info addNamed [ 'express', '2.4.7' ]
npm info fetch https://registry.npmjs.org/jade/-/jade-0.16.2.tgz
npm info shasum 514de77b161b9101a9a65eb4f1553fcf395c618a
npm info shasum /tmp/npm-1315676593472/1315676593472-0.3313761476892978/tmp.tgz
npm info shasum 0db4d4c19de0997390d9716e7def76eb5d248d09
npm info shasum /root/.npm/jade/0.16.2/package.tgz
npm info into /root/test01 express@2.4.7
npm info into /root/test01 jade@0.16.2
npm info installOne express@2.4.7
npm info installOne jade@0.16.2
npm info unbuild /root/test01/node_modules/express
npm info unbuild /root/test01/node_modules/jade
npm info preinstall express@2.4.7
npm info addNamed [ 'connect', '1.7.x' ]
npm info addNamed [ 'mime', '>= 0.0.1' ]
npm info addNamed [ 'qs', '>= 0.3.1' ]
npm info addNamed [ 'mkdirp', '0.0.7' ]
npm info preinstall jade@0.16.2
npm info addNamed [ 'commander', '0.1.0' ]
npm info addNamed [ 'mkdirp', '>= 0.0.7' ]
npm info fetch https://registry.npmjs.org/commander/-/commander-0.1.0.tgz
npm info into /root/test01/node_modules/express mkdirp@0.0.7
npm info into /root/test01/node_modules/express connect@1.7.1
npm info into /root/test01/node_modules/express mime@1.2.4
npm info into /root/test01/node_modules/express qs@0.3.1
npm info installOne mkdirp@0.0.7


~~~省略~~~


npm info build /root/test01/node_modules/jade/node_modules/mkdirp
npm info linkStuff mkdirp@0.0.7
npm info install mkdirp@0.0.7
npm info postinstall mkdirp@0.0.7
npm info build /root/test01/node_modules/jade
npm info linkStuff jade@0.16.2
npm info install jade@0.16.2
npm info postinstall jade@0.16.2
npm info build /root/test01
npm info linkStuff application-name@0.0.1
npm info install application-name@0.0.1
npm info postinstall application-name@0.0.1
express@2.4.7 ./node_modules/express
├── mkdirp@0.0.7
├── mime@1.2.4
├── qs@0.3.1
└── connect@1.7.1
jade@0.16.2 ./node_modules/jade
├── commander@0.1.0
└── mkdirp@0.0.7
npm info ok

モジュールも無事インストール出来たようで test01ディレクトリにnode_modulesディレクトリが作成されました。

1
2
3
4
5
6
7
drwxr-xr-x  5 root root 4096  10月 11 22:43 .
drwxr-xr-x 10 root root 4096  10月 11 22:42 ..
-rw-r--r--  1 root root  812  10月 11 22:42 app.js
drwxr-xr-x  5 root root 4096  10月 11 22:43 node_modules
-rw-r--r--  1 root root  153  10月 11 22:42 package.json
drwxr-xr-x  5 root root 4096  10月 11 22:42 public
drwxr-xr-x  2 root root 4096  10月 11 22:42 views

後は、app.jsを実行し動作を確認してみます。

1
2
[root@localhost test01]# node app.js
Express server listening on port 3000 in development mode

コンソールに待受ポートを示したメッセージが表示されたら ブラウザで、http://localhost:3000にアクセスします。

上のように表示され無事、作成出来ました。

expressはRubyで使われるフレームワーク「Sinatra」に近いようです。 まぁRubyは触った事が無いんで、Sinatraもわかりません。。。

近いうちにwebsocketを使ったchatではない、何かアプリを作りたいなぁなんて思ってます。

Comments