🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

Nodeはじめてみた

参考:東京Node学園祭2012

去年はニコ生で見るだけ、でも今年は実際に行ってみたい!ということで、会社の師に連れてってもらうことに。

で、行くからには触っておきたい!ということで。

教科書として

参考:Nodeビギナーズブック » Node.jsチュートリアル » Node.js 教程

こちらを参考に。

ただインストールは丸投げされてた・・w

nodeのインストール!

mp3格納庫と化しているVPSちゃんの出番です。

2012年9月23日時点での安定版は、v0.8.9だそうです。
とはいえパッケージからビルドするやり方にはトラウマがあり、他の手段がないかを探したところ・・。

参考:Installing Node.js via package manager · joyent/node Wiki · GitHub

Nodejs Package Manager、略してnpmを使えばyumでインストールできるっぽい。
書かれてる通り、

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm
rm nodejs-stable-release.noarch.rpm

その結果・・

node -v # v0.6.18

どうやらこの方法だと、古いのしかインストールできないぽいです。
とは言え、いつでもキレイに削除できるし、大して最新版との違いもわかってない身としては、
手軽に試してみる分にはコレでいいかと思うことにします。

最新版・新しい安定版じゃなきゃやだ!という場合は、ソースから。
どうにか0.8.9入れれへんかなぁ・・。

コマンドラインでHello World

console.log('Hello World');

hello.jsとして保存して、

node hello.js # Hello World

できた!次!

ブラウザからHello World

var http = require("http");

function onRequest(request, response) {
  console.log("Request received.");
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}

http.createServer(onRequest).listen(8888);

console.log("Server has started.");

server.jsとして保存して、サーバーのIP:8888としてブラウザでアクセス。
ポート番号は任意。

ブラウザでもHello Worldできた!

今日はここまで。

ハマったところ

iptablesに阻まれるアクセス

というか、期待通りの挙動やけどさ・・。
ポート8888なんて開けてなかったので、何回やっても通らなかった。

sudo vi /etc/sysconfig/iptables
# ポート開けて
sudo /etc/rc.d/init.d/iptables restart
# これでOK!

httpモジュールいれてない

ブラウザからHello Worldの、server.jsの1行目。

var http = require("http");
// httpモジュールを使う宣言

つまり、それインストールしてないとダメ。
Node本体だけじゃダメ。

npm ls
# 案の定からっぽだったので・・

npm install http

こうすることで、無事にできるようになりました。

Node起動してない

まさかの凡ミス・・・凡すぎる凹む・・w

node server.js

ってやってから、アクセスです。
やってないとつながるはずがありません。

当たり前や!