- 追加された行はこの色です。
- 削除された行はこの色です。
- Node.js へ行く。
#author("2021-06-17T09:48:00+09:00;2021-06-17T09:47:40+09:00","default:inoue.ko","inoue.ko")
*Node.js
https://nodejs.org/ja/
~
Node.js は 2009年にリリースされた、サーバーサイド JavaScript アプリケーションのプラットフォームです。Web開発をサポートする多くのツールが Node.js で実装されてきたことから、今日ではフロントエンド開発にも Node.js を使うことが多くなりました。クライアント・サーバーともにプログラムを JavaScript で組めるということから、JavaScript の需要の高まりにも影響しています。
.js と表記することから JSライブラリのひとつ・・のような印象を与えますが、「JavaScript 環境」というまったくの別物です。
~
***CONTENTS
#contents2_1
~
**概要
***これは何?
Node.js は、端的に言うと ''JavaScript の環境''です。一般にJavaScript は、ブラウザがそれを解釈して実行するものでしたが、Node.js という環境があれば、クライアントマシンやサーバーマシンに限らず、様々なプログラムを動かすことが可能になります。
サーバーサイドの JavaScript という説明もできますが、Apacheサーバーの存在を前提に動く PHP とは様子が異なります。Node.js の環境があれば、例えば、ローカルPCの任意のディレクトリをパッケージの置き場として、そこに JavaScript で書いたサーバープログラムを設置して、Webアプリケーションの開発をすることができます。
JavaScript のプログラマにとっては画期的なアイデアであり、現に多くのWebアプリケーションが Node.js の存在を前提に制作されています。
-[[GoogleTrends Node.js>https://trends.google.com/trends/explore?date=all&geo=US&q=%2Fm%2F0bbxf89]]
-Node.js でできること
--Webサイト(Webサーバーをセットで)の制作
--Webアプリケーションの開発
--スマホアプリ、ゲームアプリの開発
--WebAPIの開発
~
***Node.jsの特徴
-シングルスレッド
Node.jsは「同時に一つのことしかできない」シングルスレッドです。Apacheなどのウェブサーバはマルチスレッドなので同時処理が可能。そのメリットは大きいのですが、逆に大量のアクセスがあるとリソースがなくなってしまう問題があり、この臨界点が約10,000件です(C10K問題)。Node.js はこの問題を回避できる点が強みです。
-ノンブロッキングI/O
一般的なシングルスレッドでは、ひとつの処理が終わらなければ次の処理に入ることができず、「待ち時間」が長いと処理効率が下がってしまうのですが、ノンブロッキングI/O というのは、待ち時間の間に次の処理を進める仕組みなので、マルチでなくとも大量のデータ処理が可能になります。
-イベントループ処理
Node.jsはイベントループを採用しています。そのため、複数のリクエストやレスポンスなどの処理は順番にイベントループで処理されていきます。
-Google V8 JavaScript Engine
Node.js は Googleが開発した Google V8 JavaScript Engine を使用して、高速処理を実現しています。
-フロントエンド / バックエンド とも JavaScriptで書ける
これまで JavaScript をバッックエンド(サーバーサイド)で使用することはできませんでしたが、Node.js の登場でそれが可能になりました。もちろん、簡単なWebアプリケーションをローカルで動かすのあれば、すべて Node.js で解決できます。
~
~
**インストール
***Mac へのインストール
有名な存在となり、インストールも簡単にできるようになりました。
-以下からインストールパッケージをDLしてインストール。
https://nodejs.org/ja/
-Node.js のバージョン確認
インストール後は、[[ターミナル>Terminal]]から以下のコマンドでバージョンが確認できればOKです。
$ node -v
v11.6.0
-npm のバージョン確認
パッケージマネージャーである npm のバージョンも、以下で確認できます。
$ npm -v
6.10.3
~
***MEMO|運用サーバー CentOSへのインストール
完全に個人的なメモです。
-バージョン確認
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
-Node.jsをインストールするのに必要なパッケージをインストール
# sudo yum install -y gcc-c++ make
-Node.jsをインストール
# sudo yum install -y nodejs
-動作確認
# node -v
v6.14.3
~
~
**使ってみる
***前提|Terminal を使う
Node.js は、[[Terminal]] から CUI インターフェイスで作業します。 それ何?という方は、まずは [[Terminal]] のページをご確認下さい。
Node.js には、[[Python]]と同様に2つの利用方法があります。
-スクリプト環境を起動してインタラクティブ(対話的)に使う
-.js ファイルを作成して、これを node コマンドで実行する
以下、それぞれ概説します。
~
***インタラクティブな環境で試す
はじめに、対話的に使う方法から紹介します(Terminal の利用です)。
-node.js を起動します。
$ node
>
-コンソールに "Hello Node!" と表示してみます。console.log は JavaScript でおなじみのもので、ターミナルの画面に引数部分を表示します。
>console.log("Hello Node.js!");
Hello Node!
undefined
>
undefined というメッセージは「関数に戻り値がありません」という意味で、ここでは気にしなくて大丈夫です。
-同様に、以下のような基本的な動作もご確認ください。
> a=10;
10
> b=15;
15
> console.log(a+b);
25
undefined
> var f = (x) => x * x;
[Function]
> f(10);
100
-対話を終了するには .exit です。
> .exit
$
~
***.js ファイルを作って動かす
カレントディレクトリに sample.js というファイルを作成します。
-エディタ(Atom等)で、以下の1行を入力して sample.js という名前でカレントディレクトリに保存して下さい。
console.log("Hello Node.js!");
-ターミナルから以下のように入力すると、sample.js が動きます。
$ node sample.js
Hello Node.js! ← これがプログラムの動作の結果です。
~
''付記:私はどこ?''
Terminal で作業していると、今どこ?がわからなくなることがあります。
以下、カレントディレクトリの確認方法です。
$ pwd
/Users/XXXX
これは、Usersディレクトリの中の XXXX という場所がカレントディレクトリであることを意味します。普通にターミナルを起動した状態であれば、XXXX の部分はおそらく、あなたのログイン名になっているかと思います。これはFinder(GUI) で見ると、あなたの ホームディレクトリを意味していて、おそらく他にドキュメントやダウンロード、ピクチャ、ミュージックといったフォルダが見えると思います。
pwd の返答が /Users/XXXX/Desktop/NodeSample という場合は、デスクトップ上の NodeSample というフォルダがカレントディレクトリです。
~
~
**APPENDIX
***関連ページ
-[[Node.js/npm]]
-[[Node.js/Sample]]
-[[Node.js/TemplateEngine]]
-[[Node.js/Framework]]
~
~
**旧記事:Node.js のインストール|Mac
&color(red){記事のアーカイブです。時代が進んで話が簡単になったので、以下は読まない方がいいです。};
Node.js をインストールするには、パッケージ管理ツールの nodebrew が必要で、そのためには、Homebrew のインストールが必要です。
以下、順にインストールします。
***Homebrew のインストール
Homebrew は、macOS用のパッケージマネージャですが、標準では入っていませんので、まずはこれをインストールします。
-以下のサイトの先頭にあるスクリプトをターミナルから入力
https://brew.sh/index_ja.html
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-以下のコマンドで、バージョンが表示されればOK
$ brew -v
Homebrew 1.8.6
~
***nodebrew のインストール
-以下のコマンドでインストール
$ brew install nodebrew
-以下のコマンドで、バージョンが表示されればOK
$ nodebrew -v
~
***node.js のインストール
-バージョン候補を確認
$ nodebrew ls-remote
> ずらりと表示されます。
-最新を選んでインストール
$ nodebrew install-binary v11.6.0
注)ファイルが作れない・・的なエラーが出た場合は、以下のようにディレクトリを作成してから再度お試しください。
$ mkdir -p ~/.nodebrew/src
-状況確認
以下のコマンドで、インストールされたバージョンと、実際に動いているバージョンが表示されます。
$ nodebrew list
v10.0.0
v11.6.0
current: v11.6.0
-パスを通す
インストールしただけでは、ホームからコマンドが通りません。node.js のある場所にパスを通します。
$ echo 'export PATH=$PATH:/Users/xxxxx/.nodebrew/current/bin' >> ~/.bashrc
xxxxx の部分は User の ホームディレクトリ名
''環境変数を書き換えたので、Macの再起動が必要です''
-動作確認
以下のコマンドでバージョンが表示されればOKです。
$ node -v
v11.6.0
-参考:Node.js の動作バージョンを選択
以下のようにすると、別バージョンをカレントにすることができます。
$ nodebrew use v10.0.0
$ nodebrew list
v10.0.0
v11.6.0
current: v10.0.0
~
~