DevRel

いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜

いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜
(編集部注*2014年4月30日に公開された記事を再編集したものです。)

こんにちは、エンジニアなのにダンクができないのびすけです。今月から記事を書かせていただきます。

さてみなさん「Node.js」って知っていますか?
僕も最近Node.jsの勉強を始めたので「Node.jsを使ったことがないけど使ってみたい」と思っている人に向けて、Node.jsの入門的な内容を紹介したいと思います。

Node.jsとは

一言で言うとアツいJavaScriptです。

通常、JavaScriptはユーザーのブラウザで動作するプログラミング言語ですが、Node.jsはサーバー側で動作するJavaScriptであり、Web業界ではかなり注目されています。大量の処理に対応するために、ノンブロッキングI/Oというモデルを採用しています。

例えば、データベースから大量の情報を取得してWebページ上に表示をする処理をおこなう場合、通常はデータベースへアクセスしている時間に待ち時間(ブロック)が発生するため、ページの表示が遅くなってしまいます。
ノンブロッキングI/Oでは非同期処理をおこなうことで、データベースへのアクセスとWebページの表示を別々におこなってくれて、ストレスなくページの表示ができます。

また、Node.jsでは、Socket.ioというリアルタイムな通信を実現するライブラリを扱うことができます。この大量のアクセスに対応する仕組みと、リアルタイムな通信が注目されて、ソーシャルゲーム界隈やチャットサービスなど、いろいろな場面で利用されています。

技術評論社さん、Node.js日本ユーザーグループさんのサイトがわかりやすいので、詳細はこちらで見てください。

参考:第1回 Node.jsとは:基礎から学ぶNode.js|技術評論社

参考:Node.js日本ユーザーグループ

Node.jsの設定

以下、Node.jsの環境を整える手順になります。
個人差はありますが、手際が良い人なら5分程度でプログラムを実行するところまでいけると思います! 爆速!

1. nvmのインストール

以下についてはMacなどターミナルでの動作を想定していますので、ご了承ください。

Node.jsを使う前に、Node.jsを使った開発をおこないやすくするツールとしてNVM(Node Version Manager)を導入します。

Node.jsのバージョンによって動作しない機能があった場合に、バージョンの上げ下げを渋々おこなうのはかなりの手間です。nvmをインストールしておくことで、バージョンの切り替えが凄く簡単にできるようになります。

それでは実際にnvmをインストールしてみましょう。

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

※Linuxなどを利用していてgitコマンドがインストールされてない(command not foundなどと表示される)場合は以下を実行してgitコマンドを利用できるようにしましょう。

$ yum -y install git

環境によって上手くいかない場合もあると思いますが、参考サイトをもとにチャレンジしてみましょう。

参考:Git – Gitのインストール | git-scm.com

nvmコマンドの動作確認をします。 エラーが出ないでhelpが表示されればOKです。

$ nvm help
Node Version Manager
Usage:
nvm help Show this message
・・・

2. nvmコマンドでNode.jsをインストール

nvm ls-remoteでダウンロード可能なNode.jsのバージョンリストが見ることができます。
Node.jsは偶数のバージョンが安定版、奇数のバージョンが開発版となっています。現在(編集時:2015年7月21日)は、安定版の最新が0.12.7となっています。最近では「io.js」というNode.js互換の派生プロジェクトが開発版のような立ち位置になっていて、2.4.0が最新となっています。

$ nvm ls-remote
v0.1.14
v0.1.15
v0.1.16
・ 
・ 
・
v0.12.5
v0.12.6
v0.12.7

次にコマンドを利用します。 今回は最新バージョンの安定版の最新の0.12.7をインストールしてみました。

$ nvm install 0.12.7
########################################################################
Now using node v0.12.7

エラーが出なければNode.jsのインストールが完了です。 確認をしてみましょう。

$ node -v
v0.12.7

これでインストールは完了しました。

3. nvmの設定

nvmコマンドは、このままだとターミナル再起動時に同じような手順をおこなわないと使えません。いつでも使えるように設定しておきましょう。

まずはデフォルトのNode.jsのバージョンを指定しておきます。

$ nvm alias default v0.12.7
default -> v0.12.7

~/.bash_profileを、ターミナル起動時にnvmコマンドが適用されるように設定します。

$ vi ~/.bash_profile

viはターミナル上で動作するテキストエディタです。
画面が変わりますが、焦らずに操作しましょう。一般的なエディタとは勝手が違うのでターミナル初心者は注意です。

viは入力モードとコマンドモードを切り替えて操作します。
初期状態はコマンドモードでテキスト入力はできませんが、iを押す事で入力モードに切り替わり入力可能になります。矢印キーなどでファイルの末尾に移動してからiを押して、以下を追記してください。

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

編集が終わったらESC(エスケープ)キーを押しましょう。コマンドモードに切り替わります。
その後:wqと入力してエンターキーを押しましょう。ファイルが保存されます。
※ここの作業が不安な人は、他のエディタで編集しても問題ありません。

これで次回以降ターミナルを起動したときでも、Node.jsが使えるようになりました。

Node.jsでHello World!

それではお待ちかねのHello Worldをやってみましょう。Node.jsはコマンドライン上で動作しますが、Webブラウザ上で動作確認をしてみます。

エディタでexample.jsというファイルを作成し、以下のコードを書きましょう。

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

保存をしたらいよいよ実行です。

$ node example.js

Server running at http://127.0.0.1:8124/

ターミナルが待ち受け状態になります。
この状態でブラウザから http://localhost:8124 にアクセスしてみましょう。

Hello World

と表示されていれば成功です!

お疲れさまでした!

今回のまとめ

Node.jsの環境を整えて、画面に文字を表示させるHello worldまでをおこないました。Node.jsは数年前と比べてかなり有名になってきて、実績もあります。

PHPメインのサーバーサイドのエンジニアや、「ブラウザ側でJavaScriptは触っていたけどサーバー側もやってみたい」と思っているフロントエンジニアのみなさん、これを機会にNode.jsを勉強して、アイデア実現の範囲を広めてはいかがでしょうか。

それでは、また!


LIGでは、エンジニアを絶賛募集中!
http://liginc.co.jp/recruit/mid_career

この記事を書いた人

のびすけ
のびすけ バックエンドエンジニア 2014年入社
dotstudio株式会社 ( https://dotstud.io )

岩手から上京してきました。

ギークハウスを経て、現在は0円シェアハウスに住んでいます。

好きなスポーツはフットサル/雪合戦/わんこそばです。

2015年は東京Node学園で登壇してみたいです。

・milkcocoa公認エバンジェリストになりました。(https://mlkcca.com/)
・gihyo.jpで記事書いてます (http://gihyo.jp/dev/feature/01/milkcocoa-baas)
・html5experts.jpで記事書いてます。(https://html5experts.jp/n0bisuke/)

こちらもおすすめ

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック

  • 著者クジラ飛行机
  • 価格¥ 3,456(2015/10/30 14:28時点)
  • 出版日2015/08/31
  • 商品ランキング6,893位
  • 単行本432ページ
  • ISBN-104883379930
  • ISBN-139784883379934
  • 出版社ソシム