Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@fksk

今更ながらNode.jsに触れてみた

まずはじめに

ほんと最近ですが,Node.jsにお触りしました.
折角なので,頭の中で整理をつけるためにも書いていこうと思います.
お付き合いください.

Node.jsとは

端的に言えば,サーバサイドで動作するJavaScriptの環境です.
大量のリクエストを高速で処理できる…そんなWebアプリの開発が可能です.
なぜに大量の処理を速くできるの?という話になりますが,
要因として,シングルスレッド方式ノンブロッキングI/Oを採用しているからだと言えますが,ひとまずここについては説明を省きます.

環境構築

環境構築って嫌ですよね.ハマったら最後,迷宮入り.
でもNode.jsはそんなことありません.とっても簡単なのです.
以下に示します.(Vagrant/CentOS6.4の環境下で行っています)

NVM(Node Version Manager)のインストール

これは,Node.jsのバージョンの切り替えを簡単にできるツールです.
Node.jsは頻繁にバージョンが上がっていくので,まぁ必須です.
ただ,nodebrewのようなのもあるので,何を使うかはお任せします.

インストールするにはコマンドラインで以下の2つを実行してください.

$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh

その後,ヘルプが表示されるか確認してみましょう.

$ nvm help
Node Version Manager
 …

エラーが出なければ成功です.

nvmでnode.jsをインストール

まず,nvm ls-remoteでインストールできるバージョンを確認してみましょう.

$nvm ls-remote
v0.1.14
v0.1.15
v0.1.16
…
v0.12.7
v0.12.8
v0.12.9
…

このようにドドドと表示されます.(2015/12/22現在)
この中からバージョンを選んでインストールしましょう.

$ nvm install v0.12.9

終わったらば,確認を…

$ node -v
v0.12.9

バージョンが無事表示されればバッチリです.

また,NVMはその名の通り,バージョンの管理ができるので,いくらでもインストールできます.
自分がインストールしてきたバージョンを確認したい場合は,

$ nvm ls

で確認できます.
その中で使用するバージョンを切り替えたい場合は

$ nvm use v0.12.7

のように指定してあげれば簡単にできます.

nvmの設定

Node.jsのデフォルトのバージョンを指定しましょう

nvm alias default v0.12.9

次に,環境を再度立ち上げた時にnvmコマンドが実行できるよう,bash_profileへ追記しましょう.
(やらないとまた設定をし直すはめに…)

vi ~/.bash_profile

if [[ -s ~/.nvm/nvm.sh ]];
    then source ~/.nvm/nvm.sh
fi

環境構築は以上です.

それでは定番の…

Hello World の時間です.
適当にhello.jsなど作って以下のソースコードを記述しましょう.

hello.js
var http = require('http');
var server = http.createServer();
server.on('request', function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('Hello World');
    res.end();
});
server.listen(2525,'192.168.33.10');
console.log("The server is now running.");

解説すると…
まず,node.jsが提供しているhttpモジュールを,オブジェクトとして読み込みます.
これは色々な場面で使うので,書くのが定番らしいです.

var http = require('http');↲

そして,http.Serverのインスタンスを作ってサーバを作ります.

var server = http.createServer();

次に,onでserverとイベントと紐付けします.
イベントの種類はrequestなので,アクセスする度に以下のコールバック関数が呼び出されます.
この場合,第二引数のres(response)が返ってくる値になるため,
res.writeで'Hello World'を書き込んでください.
今回書き込みたい情報は,”Hello World”という文字列だけです,
なので,writeHeadには,成功を意味する200のステータスコードに加え,
Content-Typetext/plainに設定しましょう.あと,最後のendは忘れずに…

server.on('request', function(req, res) {↲
    res.writeHead(200, {'Content-Type': 'text/plain'});↲
    res.write('Hello World');↲
    res.end();↲
});↲

サーバが待ち受けるポート番号(任意)とIPアドレスを指定してあげましょう
ちなみにVagrantで設定してるIPアドレスを入れています.

server.listen(2525,'192.168.33.10');↲

だらりと説明してしまいましたが,こんな感じです.

早速,実行してみましょう.
基本的に node [file_name]で可能です.

$node hello.js
The server is now running.

コンソールログが出てきました.いいかんじ.
ではでは,ブラウザで http://192.168.33.10:2525 にアクセスしてみましょう!
そこには…

Hello World

出ているはずです.お疲れ様でした.

最後に言いたいこと

今回はNode.jsの環境構築からhelloworldまで載せました.
ちょっと物足りないかもしれません.
簡単なチャットアプリについても載せたかったのですが…
疲れたのでやめます(笑)
普段全く投稿しないので体力不足ですね…

またNode書いて投稿します.
見てくれてありがとうございました!

参考

10
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What is going on with this article?