$ node app.js
エラー内容はこちら。
node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Cannot read property 'prototype' of undefined at Object.(/home/yoo/matsuo-software/sandbox/node-firstapp/node_modules/express/lib/express/server.js:87:44) at Module._compile (module.js:444:26) at Object..js (module.js:462:10) at Module.load (module.js:351:31) at Function._load (module.js:310:12) at Module.require (module.js:357:17) at require (module.js:373:17) at Object. (/home/yoo/matsuo-software/sandbox/node-firstapp/node_modules/express/lib/express/index.js:28:31) at Module._compile (module.js:444:26) at Object..js (module.js:462:10)
することなすことすべてがエラーで返ってくるので常に心を整えていないとやっていられない。エラー場所として示されているserver.jsの87行目を見てみると
Server.prototype.__proto__ = connect.Server.prototype;
となっている。で、GoogleしてみるとExpress.jsに対応したConnect.jsのバージョンがどうやらインストールされていないらしい。インストールしているExpress.jsのバージョンは1.0.7で、そのバージョンのExpress.jsが対応しているConnect.jsは0.5.10らしい。しかしnpmからインストールするとConnect.jsは1.0.1がインストールされてしまうためにエラーとなっているようだ。なので下記コマンドで古いConnect.jsをインストールする。
$ npm install connect@0.5.10
これで冒頭のNode.jsのコマンドを実行するとサーバがリッスン状態に突入するので、http://localhost:3000にアクセスしてHello Worldの出力が正常にされているのを確認できた。ちなみに自分の環境にどのモジュールのどのバージョンがインストールされているかを調べるコマンドは下記。
$ npm ls
表示されるモジュールの一覧で、Connect.jsのバージョンが0.5.10になっているのが確認できると思う。