基盤はNode.jsを使うことにしたので、必要なパッケージをインストールします。
Node.js他のインストールは以下のリンクを参考に、
https://it-evo.jp/blog/blog-813/
<Node.jsとnpmをインストール>
$ sudo apt install -y nodejs npm
途中でエラーになったので、
$ sudo apt-get update
この後再び、
$ sudo apt install -y nodejs npm
版数、
$ node -v
v12.22.12
$ npm -v
7.5.2
バージョン管理パッケージ(n)のインストール
$ sudo npm install n -g
added 1 package, and audited 2 packages in 19s
found 0 vulnerabilities
今の版数、
$ n -V
v9.0.1
長期安定版のインストール、
$ sudo n lts
安定版の方が版数古いけど、版数戻し、
$ node -v
v12.22.12
$ hash -r
$ node -v
v10.24.1
古い(安定版じゃない)パッケージを削除、
$ sudo apt purge -y nodejs npm
<Express/Express-Generatorのインストール>Express : Node.jsで利用できるWebアプリケーションフレームワーク
$ npm install express --save
Express-generatorはルート権限でないとインストールできなかった、
$ sudo npm install express-generator -g
$ express --version
4.16.1
P.S. 2022/11/25
npmでのインストールパラメータ “–save”は現在のnpmでは暗黙に指定されている様です。
<webサーバーの立ち上げ>
$ express t_web --view=pug
$ cd t_web
$ npm install
t_webのディレクトリ構成
見かけon Railsに雰囲気似ています。拡張子pugはHTMLを発生させるテンプレートです。views/index.pugがトップページだろうと思って中身を見ると、確かに作成されるHTMLを連想できるような内容になってます。
$ ls -l
total 68
-rw-r--r-- 1 pi pi 1074 Nov 15 04:47 app.js
drwxr-xr-x 2 pi pi 4096 Nov 15 04:47 bin
drwxr-xr-x 123 pi pi 4096 Nov 15 04:52 node_modules
-rw-r--r-- 1 pi pi 297 Nov 15 04:47 package.json
-rw-r--r-- 1 pi pi 38995 Nov 15 04:52 package-lock.json
drwxr-xr-x 5 pi pi 4096 Nov 15 04:47 public
drwxr-xr-x 2 pi pi 4096 Nov 15 04:47 routes
drwxr-xr-x 2 pi pi 4096 Nov 15 04:47 views
~/t_web $ ls -l views
total 12
-rw-r--r-- 1 pi pi 84 Nov 15 04:47 error.pug
-rw-r--r-- 1 pi pi 66 Nov 15 04:47 index.pug
-rw-r--r-- 1 pi pi 125 Nov 15 04:47 layout.pug
~/t_web $ cat views/index.pug
extends layout
block content
h1= title
p Welcome to #{title}
<サーバー起動>
ディレクトリt-webでnpm startで起動してブラウザからアクセスすると、アクセスのログがコンソールに出力されます。
$ npm start
> t-web@0.0.0 start /home/pi/t_web
> node ./bin/www
GET / 200 9066.188 ms - 170
GET /stylesheets/style.css 200 89.833 ms - 111
GET /favicon.ico 404 432.286 ms - 962
GET / 200 371.813 ms - 170
GET /stylesheets/style.css 304 22.612 ms - -
GET / 200 293.274 ms - 170
初回のアクセスだけは展開処理が入るようで9秒程度かかっていますが、以降はキャッシュ使うので早い。
pugファイルから予想される内容のページが表示されます。
アクセス方法は、
http://url:3000
urlはローカルIPアドレスです。
ネットワークアクセスは有線LANなのでランプの点滅で確認可能。
admin