node.js流行ってますね。むしろもう一般常識?

いまさらですがちょっといじってみます。

node.jsって?

自分的にはザックリ、

JavaScriptインタプリタ + 便利ライブラリ

と理解しときます。

スゲー進化したBASICみたいなもんですな。

Install

Windows7 64bitです。

http://nodejs.org/のINSTALLをクリック。

node-v0.10.33-x64.msiがダウンロードされましたんで、実行。

デフォルトのまま次>次…

インストールが終了するとスタートメニューにnode.jsが追加されます。

上から

Node.js command prompt
node.js用に環境設定されたコマンドプロンプト。サーバ起動とかnpmとか、作業するときはこれか?
Node.js documentation
ドキュメントサイトへのリンク
Node.js website
node.js本家サイトへのリンク
Node.js
Node.js(node.exe)そのもの起動。対話型のインターフェース。1+1とか実行できます。

Tutorial

ど素人なのでNodeSchoolのチュートリアルをやってみます。

“Node.js command prompt”を開いて、

1
2
\>npm install -g javascripting
\>javascripting

なにやらメニューが表示されます。

“INTRODUCTION”を選んでみます。

なにやら、英語の文書が表示されます…

なんというか、、、単なるドキュメントじゃだめなんでしょうか?

とりあえず言われたとおりにやってみます。

作業用フォルダは D:\nodejs にしました。

1
2
3
D:\nodejs>mkdir javascripting
D:\nodejs>cd javascripting
D:\nodejs\javascripting>vim introduction.js   #チュートリアルではtouchして好きなエディタで編集となっとりました。
1
console.log('hello');
1
D:\nodejs\javascripting>javascripting verify introduction.js

うまくいくと、お褒めの言葉と解説が表示されるようです。

、、、単なるドキュメントじゃだめなんでしょうか?

再度 javascripting を実行すると、先のメニュー画面に戻り、次のステップに進みます。

INTRODUCTIONに[COMPLETED]がついてますね。

次は”VARIABLES”…と順に進めていきます。

進めると[COMPLETED]が増えますんで、かすかな達成感があります。所要時間は1時間ぐらいでしょうか。

javascripting はjavascriptのチュートリアルなのでやらなくていいかも。

次にlearnyounode行ってみます。

1
2
3
4
D:\nodejs>npm install learnyounode -g
D:\nodejs>mkdir learnyounode
D:\nodejs>cd learnyounode
D:\nodejs\learnyounode> learnyounode

“MY FIRST I/O!”あたりからnode.jsっぽい内容になってきます。

Exercise別メモ

HTTP CLIENT

けっこう深い継承

callbackに渡されてくるresponseオブジェクトのon()とかsetEncodingとか、ドキュメントにないっすけど。。。

よくよく読んでみると、responseはhttp.ServerResponsではなくhttp.IncomingMessageというもの(クラスではないらしい。匿名クラス?)で、こいつが Readable Streamってインターフェースを実装してますよとの事。

Readable Streamの説明にはsetEncodingとか”data”イベントとかの説明がありますね。

んじゃon()は?

Readable StreamはStreamってインターフェースの実装らしく、このStreamがさらにEventEmitterのインスタンスだよとの事。

EventEmitterにon()の定義が在りました。

JavaScriptだからか、実装とかインスタンスとかって言葉がごちゃまぜに出てきますな。きちんと理解しないとハマるポイントになりそう。。。だけど今はスルー。

HTTP COLLECT

チュートリアルで3rdパーティーライブラリつかうんか。bl使います。

1
2
3
D:\nodejs\learnyounode>npm install bl
bl@0.9.3 node_modules\bl
└── readable-stream@1.0.33 (isarray@0.0.1, inherits@2.0.1, string_decoder@0.10.31, core-util-is@1.0.1)

HTTP UPPERCASERER

こちらでもパッケージ追加。

1
2
3
4
5
D:\nodejs\learnyounode>npm install through2-map
through2-map@1.4.0 node_modules\through2-map
├── xtend@3.0.0
├── terminus@1.0.11 (xtend@4.0.0, readable-stream@1.0.33)
└── through2@0.5.1 (readable-stream@1.0.33)

という事で、javascriptingとlearnyounodeやったわけですが、

node.js自体はJavaScriptなわけだから、激しく難しいわけではないですな。

英語がよくわかんないけど。

次はなんかちっさいツール作ってみるかも。