ラズパイでWebSocketの環境構築

基盤は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