こんばんは、nazomikanです。 > 手元にある参考書「Nodeクックブック」だと1つのserver.jsを上書きするように > ステップアップしていくので問題はないのですが、試しにデモ別に保存・実行すると > ポートが共存してエラーが出るようです。
server.jsの中身は分かりませんがserver.listen(port)としているのであればそのアプリケーションは 指定したポートをlistenしてるわけなので、このポートは使用中になっていて他の アプリケーションからは利用できません。 > 皆さんはテスト環境ではアプリ別にポートを開放して作業を行ってらっしゃるのでしょうか? 僕はローカルでやるときはだいたいそうしてます。 もしくはホストを分けるとかどうでしょうか 適当ですがサンプルコードかきました。 https://gist.github.com/nazomikan/8270802 実際にポートをlistenしてるのはserver.jsで、そこにくるリクエストのホスト名を確認して それぞれのアプリケーションサーバにreq,resをセットしてリクエストイベントを発火させてあげるという方法です。 これなら一つのポートで複数アプリケーションたてれます。 expressとかを利用していらっしゃるのであればConnectミドルウェアにvhostというものがあります。 やってることは"だいたい"上のと一緒です。 http://www.senchalabs.org/connect/vhost.html ``` var foo = express(); ... var bar = express(); ... var baz = express(); ... express() .use(express.vhost('foo.com', foo)) .use(express.vhost('bar.com', bar)) .use(express.vhost('baz.com', baz)) .listen(80) ``` みたいな感じで。 2014年1月5日日曜日 11時50分45秒 UTC+9 hidakaya: > > はじめまして、hidakayaと申します。node.jsは勉強し始めたばかりです。 > > 表題の件ですが、勉強がてらにデモを作っている時に疑問に思いました。 > > 例えば静的なページのデモサイトを作るときは > > http://mydomain.com/demo1/ > http://mydomain.com/demo2/ > http://mydomain.com/demo3/ > > みたいに単純にフォルダ別にサーバーにファイルをアップロードすれば > それがそのままURLになるので複数のデモを同時に公開できます。 > > 手元にある参考書「Nodeクックブック」だと1つのserver.jsを上書きするように > ステップアップしていくので問題はないのですが、試しにデモ別に保存・実行すると > ポートが共存してエラーが出るようです。 > > 皆さんはテスト環境ではアプリ別にポートを開放して作業を行ってらっしゃるのでしょうか? > node.jsの初心者というかサーバー自体もよくわかってない部分もあるので疑問に思いました。 > > お分かりの方がいらっしゃいましたら、よろしくお願い致します。 > -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、メールの受信を停止するには、nodejs_jp+unsubscr...@googlegroups.com にメールを送信します。 その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。