Web(Http)サーバーとはWebブラウザで見れるWebサイトの事です。なぜ外国のように「Httpと言わないのか?」というと、Httpsというセキュア(防犯)な暗号化のWebもあるからです。
今は昔と違い、閲覧者の端末にインストールするアプリではなく、インストールをしなくてもWebブラウザで、すぐに見れるサーバーサイドのプログラミングが楽なので人気です。
昔と違い今は個人が簡単なスクリプトを使い、Webサーバーソフトが作れるようになりました。これの利点は昔のように数少ないサーバーソフトだと複数を起動できないので、サーバーソフトが落ちたら全部のサービスが停止してしまいますが、Webサーバーが複数起動しているので、多くのサービスが停止しないです。
業務の大規模システムというのは、このように簡単に多くの人が作れるのが現在は基本です。昔と違ってマシンのスペックも向上しているので、このようにサービスを数多く起動しても問題はありません。問題があるのは大企業などで古いシステムを意固地に使っている所ではシステム障害が起きます。
では、実際にNode.jsでWebサーバーを作る方法を説明します。
全体的な設定方法【初回編】通常の作業は③と④の繰り返しです |
① |
サーバー管理者がNode.jsのコンパイラーなどをサーバーOSにインストールします。現実的にはレンタルサーバーなどでは、PerlとPHPぐらいしかインストールされていません。多くで使えるのはクライアントサイドのJavaScriptとCSSとHTMLだけです。こういう状態からしてクライアントサイドのJavaScriptを勉強すれば、サーバーサイドのJSも理解しやすく、得が多いです。
|
② |
ユーザーがサーバーにコンパイラーなどがインストール済みかを確認する方法は、Telnetなどの端末(DOSプロンプトやターミナルのようなソフト)で、コマンド「node --version」と打ちバージョンが表示されたらインストール済みです。
そのバージョンに合ったJavaScriptを書きましょう。
|
③ |
ユーザーはスクリプトを書いた後に、テキスト書類を「app.js」などと改名し、サーバーにアップロードします。
appとした理由はよく使われるプログラム本体名で、コマンド入力時にも記録されて、矢印キーですぐに出力できて楽だからです。ただしDOSプロンプトは再起動後には記録が削除されています。
【スクリプトを書く時の注意点】
・他の人のWebサイトから参考にする時には、
app.jsの中でHTMLを表示するソースではなく、
app.jsが「http-root(フォルダ)/index.html」などを
読み込むソースを参考にする。
ここでなぜweb-rootとしない理由は、
httpとhttpsを分けたいや、
ftpなども含めたいなどがあります。
・画像を表示できないソースもあるので、
様々な書類に対応するソースを参考にする。
・Go言語などだと、初期の段階ではリンク先に
飛ばないが、Node.jsは正常に飛ぶ。
|
④ |
ユーザーは端末で「node app.js」というコマンドを打ちrun(実行)します。Httpプログラミングでは、端末で起動後に、Webブラウザで「http://127.0.0.1:3000」で起動しているか見ます。3000というポートはapp.jsの中で書き換えで変更可能ですが、Node.jsによるWebサーバーはこのポートが多く使われています。
|
上記はサーバーOSがLinuxとMacとWindowsの、どれでも対応可な説明です。しかし実際にはサーバーはLinuxが最も多く使われ、MacはクライアントOSのシェア自体が少ないです。
実際に多くのユーザーが開発するのはWindowsでアップロードするサーバーはLinuxとなります。こうなるとWindowsにユーザーがnodeをインストールし、vbsでクリックすると起動するシェルを作るのも便利です。それが以下です。
なおVBスクリプトを使う理由は「MSJavaScriptだとワークグループの共有フォルダなどが見れない」のと「Node.jsも書類名.jsで混乱する」のと「同じMS製品なので今後のサポートが安心かもしれない」のと「VB.NETなどや新技術に対応しやすい」からです。ただしuft-8にするとエラーになるのでANSIで編集してください。
node_app.js.vbs Node.jsの書類をクリックで起動させる書類
Set oWshShell = CreateObject("WScript.Shell")
oWshShell.Run "cmd /k node app.js"
|
・上記をテキスト書類にコピペし、ANSIで保存してください。
・cmd /k はなくても可ですが、これはDOSプロンプトを、
すぐに終了させないコマンドです。なぜこのコマンドを
つけるのか?といいますと、コマンド入力ではなく、
VBSで起動すると直ぐに終了する物もあるからです。
version-list.vbs 設定済み環境をクリックで起動させる書類
Set oWshShell = CreateObject("WScript.Shell")
oWshShell.Run "cmd /k echo node.js version && node --version && echo; && echo npm version && npm --version && echo; && echo TypeScript version && tsc -v"
|
・数多くの言語をインストール直後に、この書類にメモ書きの
ように、コマンドを記入すると、インストール済みの確認
などで便利です。
・oWshShell.Run "文章"を改行したりするとエラーになります。
・echoはDOSプロンプトで文字を表示するコマンドです。
・&&で同じDOSプロンプトのフレーム内でコマンドを続けて、
表示されます。
・npmとはNode Package Managerの略のNode.jsの追加機能で
ある、モジュールなどをダウンロードするツールです。
モジュールなどは、コマンド「npm install パッケージ」
でインストールできます。
・TypeScriptとはNode.jsのツールのnpmでインストールできる、
マイクロソフト社の言語で、C#などとも連携するようです。
▼上記で作成したVBSをクリックすると、DOSプロンプトで表示
node.js version
v14.15.5
npm version
6.14.11
TypeScript version
'tsc' は、内部コマンドまたは外部コマンド、操作可能な
プログラムまたはバッチ ファイルとして認識されていません。
D:\home\node.js>
|
・未インストールやパスをあててないと、
「内部コマンドまたは外部コマンド⋯」
などと表示されます。
・環境変数などを全部表示するコマンドもある
ようですが、それだと余計な物も見る無駄が
あります。
・node.js versionなどのversionは省略しても
良いように思えますが、例えば NODE_HOME
の位置も表示したい場合などもあります。
NODE_HOME とはnode.exeやnode_modules
フォルダがあるフォルダの事で、node_modules
フォルダにnpmなどのモジュールが追加で
インストールされます。
|