Linuxにもnodeをインストールできたので、本格的に勉強し始めている。 ExpressというのがWebサーバーを作っていく上でほぼ必須だそうなので、npmでインストールする。そしてデーモン化するためにforeverも入れてみた。 今は8080ポートで動かしているが、そのうち本格的に使えるようになったら、node-http-proxyを入れてapacheと80番ポートを共存させたいなと思っている。
Expressはコマンドでひな形を作ってくれるのだが、ここで少しはまってしまった。まずウェブの情報ではテンプレートを選択するのに-tを使ってejsかjadeかhamlを選べると書いてあったのだが、この情報は少々古いらしく現バージョンでは-eでejsに切り替えができるようである。jadeのほうがコード量が少なくなるようだけれども、ejsはphpなどでおなじみの方式なのでejsでしばらくやってみようかなと思っている。
しばらくはWebMatrixを使ってローカルで作り、そのコードをSCPでLinuxサーバーにアップしようかなと思う。vsftpdを入れてFTPでデプロイできるようにしようかなと思ったけど、インストールがうまくいかなかったのとセキュリティが気になるのでとりあえずやめておくことにした。
で、WebMatrixのテンプレートにExpressがあるんだけれども、それを使うとjadeになってしまう。いろいろやってみた結果、下記のやり方でできた。ほかにもっといいやり方があるかもしれないが。
-
コマンド・プロンプトで-eオプションを使ってexpressテンプレートフォルダを作成する。このコマンドを使えるようにするにはひょっとするとnpm ギャラリーで予めexpressをインストールしておかなくてはいけないかもしれない。
H:\satoshi_documents\documents\My Web Sites>express -e testweb create : testweb create : testweb/package.json create : testweb/app.js create : testweb/public/stylesheets create : testweb/public/stylesheets/style.css create : testweb/public create : testweb/routes create : testweb/routes/index.js create : testweb/routes/user.js create : testweb/public/javascripts create : testweb/views create : testweb/views/index.ejs create : testweb/public/images install dependencies: $ cd testweb && npm install run the app: $ node app H:\satoshi_documents\documents\My Web Sites>
-
作成されたフォルダに移動し、npm installする。これで依存するモジュールがインストールされる。
H:\satoshi_documents\documents\My Web Sites\testweb>npm install npm WARN package.json application-name@0.0.1 No README.md file found! npm http GET https://registry.npmjs.org/express/3.1.0 npm http GET https://registry.npmjs.org/ejs npm http 304 https://registry.npmjs.org/ejs npm http 304 https://registry.npmjs.org/express/3.1.0 npm http GET https://registry.npmjs.org/methods/0.0.1 npm http GET https://registry.npmjs.org/cookie-signature/0.0.1 npm http GET https://registry.npmjs.org/cookie/0.0.5 npm http GET https://registry.npmjs.org/commander/0.6.1 npm http GET https://registry.npmjs.org/send/0.1.0 npm http GET https://registry.npmjs.org/range-parser/0.0.4 npm http GET https://registry.npmjs.org/fresh/0.1.0 npm http GET https://registry.npmjs.org/buffer-crc32/0.1.1 npm http GET https://registry.npmjs.org/debug npm http GET https://registry.npmjs.org/mkdirp/0.3.3 npm http GET https://registry.npmjs.org/connect/2.7.2 npm http 304 https://registry.npmjs.org/send/0.1.0 npm http 304 https://registry.npmjs.org/methods/0.0.1 npm http 304 https://registry.npmjs.org/commander/0.6.1 npm WARN package.json methods@0.0.1 No README.md file found! npm http 304 https://registry.npmjs.org/cookie/0.0.5 npm http 304 https://registry.npmjs.org/cookie-signature/0.0.1 npm http 304 https://registry.npmjs.org/range-parser/0.0.4 npm http 304 https://registry.npmjs.org/fresh/0.1.0 npm http 304 https://registry.npmjs.org/buffer-crc32/0.1.1 npm http 304 https://registry.npmjs.org/debug npm http 304 https://registry.npmjs.org/mkdirp/0.3.3 npm http 304 https://registry.npmjs.org/connect/2.7.2 npm WARN package.json connect@2.7.2 No README.md file found! npm http GET https://registry.npmjs.org/mime/1.2.6 npm http 304 https://registry.npmjs.org/mime/1.2.6 npm http GET https://registry.npmjs.org/pause/0.0.1 npm http GET https://registry.npmjs.org/bytes/0.1.0 npm http GET https://registry.npmjs.org/qs/0.5.1 npm http GET https://registry.npmjs.org/formidable/1.0.11 npm http 304 https://registry.npmjs.org/bytes/0.1.0 npm http 304 https://registry.npmjs.org/qs/0.5.1 npm http 304 https://registry.npmjs.org/pause/0.0.1 npm http 304 https://registry.npmjs.org/formidable/1.0.11 ejs@0.8.3 node_modules\ejs express@3.1.0 node_modules\express ├── methods@0.0.1 ├── buffer-crc32@0.1.1 ├── fresh@0.1.0 ├── range-parser@0.0.4 ├── cookie-signature@0.0.1 ├── cookie@0.0.5 ├── commander@0.6.1 ├── debug@0.7.2 ├── mkdirp@0.3.3 ├── send@0.1.0 (mime@1.2.6) └── connect@2.7.2 (pause@0.0.1, bytes@0.1.0, qs@0.5.1, formidable@1.0.11)
-
WebMatrixを立ち上げ、メニュー→開く→サイトとしてのフォルダーをクリックする。そして先ほど作ったフォルダーを指定して開く。
-
「続行」をクリック。しばらくするとIIS Express Webサイトに変換され、使用できるようになる。