LogoMark.png

Node.js/Framework の変更点


#author("2021-01-07T11:16:03+09:00;2019-11-26T20:12:30+09:00","default:inoue.ko","inoue.ko")
*Node.js|Framework
~

**はじめに
フレームワークとは、システム開発時によく利用する機能をあらかじめ用意してパッケージにしたものです。当然、それ自体を使いこなすための学習コストがかかりますが、フレームワーク使うことで短いプログラムで効率の良い開発が可能になります。Node.jsにも様々なフレームワークが存在します。
-[[Express>Google:Node.js Express]]:Webアプリ開発のデファクトスタンダード
-Meteor:フルスタックのJavaScriptプラットフォーム
-[[Electron>Google:Node.js Electron]]:Webの技術でデスクトップアプリが作れる
-NW.js:Webの技術でデスクトップアプリが手軽に作れる
~
~

**Express でWebサーバー
https://expressjs.com/ja/
npm には様々なパッケージが存在しますが、Expressは 定番Webフレームワークです。以下、静的サイトを表示するWebサーバーの事例です。ターミナルからお試し下さい。

***準備
-適当な場所に webserver フォルダを作って下さい。
-ターミナルでそこへ移動します。
 $ cd /Users/XXXX/webserver
~

***プロジェクトの初期化 > package.json の生成
 $ npm init
 
 package name: (webserver)
 version: (1.0.0)
 description:
 entry point: (index.js)
 test command:
 git repository:
 keywords:
 author:
 license: (ISC)
 About to write to /webserver/package.json:
 
 {
   "name": "webserver",
   "version": "1.0.0",
   "description": "",
   "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
   },
   "author": "koichi inoue",
   "license": "ISC"
 }
 
 Is this ok? (yes) yes
以上で、カレントディレクトリに package.json が生成されます。
~

***Expressのインストール
 $ npm install express
このコマンドで、カレントディレクトリに node_modules フォルダができて、関連のファイルが入ります。
~

***server.js を書いてカレントに保存
静的なファイルをホスティングするコードは以下のとおり、簡単です。
 const express = require("express");
 const app = express();
 const port=8000;
 app.use(express.static('./'));
 app.listen(port, ()=> {
   console.log('Server running on port:'+port);
 });
~

***サンプルページの投入
カレントディレクトリに適当な index.html を投入して下さい。
~


***起動と動作確認
-package.json に起動コード(以下の "start":・・の一行のみ)を追加
  :
 "scripts": {
   "start":"node server.js",
   "test": "echo \"Error: no test specified\" && exit 1"
 },
  :
-npmコマンドで起動
 $ npm start
 Server running on port:8000

-ブラウザでアクセス
 http://localhost:8000 にアクセス
''付記'':ディレクトリ内に置いた sample.html にアクセスするには・・
 http://localhost:8000/sample.html でアクセス可能です。

-終了方法等は前述の事例と同様です。
 [CTRL]+[C]

~
~


**Express でWebサーバー|Files
前節の説明内容に沿って作成したパッケージを以下に置いています。Node.js と npm がインストール済みの環境であれば、以下の手順でお試しいただけます。

https://github.com/koichi-inoue/NodeJS_WebServer


-1) 緑のボタン [Download.zip] でまるごとダウンロードして解凍します。
以下の4つのファイルがあります。
--package.json:npmプロジェクトの管理情報(依存関係の明記)
--package-lock.json:package.jsonに記載の各依存先のリスト
--server.js:サーバーのプログラム
--index.html:配信されるHTMLのサンプル(自由に変更して構いません)

-2) 展開したフォルダを適当な場所に置いて、ターミナルから当該ディレクトリに移動して下さい。

-3)   必要なパッケージをインストールします。
 $ npm install
この操作で、package.json の記述にしたがって、パッケージが当該ディレクトリにインストールされます。結果、当該ディレクトリには node-modules フォルダができて、Expressの関連ファイルが入ります。

-4) パッケージを起動します。
 $ npm start
すなわち、スクリプトにしたがって node server.js が実行されます。

-5) 以下のように表示されて、サーバーが動きます。
 nodejs_webserver@1.0.0 start / [ path to ] /NodeJS_WebServer
 node server.js
 
 Server running on port:8000

-6) ブラウザから以下にアクセスすると、サンプルとして置かれている index.html が表示されます。
 http://localhost:8000

-7) ターミナルから、以下の操作でサーバーは停止します。
 [CTRL]+[C]

~
~
**Electron について
Electron (エレクトロン)は、Web技術でデスクトップアプリケーションを作成できるフレームワークです。Webコンテンツをそのままアプリケーションとして動かしたり、ブラウザだけで実現できない機能を組み込めるのが特徴です。用途としては、テキストエディター、デザインツール、イントラネット内のクライアントツール、さらにインスタレーションやサイネージの分野でも活用の可能性があります。

HTML・CSS・JavaScript により、各OSのアプリケーションを同一のコードから生成ることができます。アプリケーションは Chromium(Chromeブラウザの元)とNode.jsがランタイムになって動作します。
~

***特徴
-クロスプラットフォーム型の実行フレームワーク(Mac、Windows、Linux)
-Webの技術で作ったものをデスクトップアプリケーション化
-オープンソース(開発元:GitHub)
~

***実用事例
有名なところでは、以下のようなアプリケーションが Electron でできています。
-Slack
-[[Atom]]
-Visual Studio Code (Microsoft) 
-Docker GUI

https://github.com/sindresorhus/awesome-electron
~

***参考になる記事
-https://ics.media/entry/7298/
-https://qiita.com/umamichi/items/6ce4f46c1458e89c4cfc
~
~