20201222

Visual Studio で Node.js と Express のアプリを作成

  1. Visual Studio をインストール
  2. インストーラで[Node.js 開発] ワークロードを選択
  1. Windows Installer (.msi) 64bit版をインストール
  1. Visual Studio を開く。
  2. 新しいプロジェクトを作成。
  3. [新しい基本の Azure Node.js Express 4 アプリケーション プロジェクトの作成] (JavaScript) を選択します。 表示されたダイアログ ボックスで、 [作成] を選択。
  4. [デバッグ]を選択しapp.jsが見れることを確認

Apache経由でExpressに接続

サーバにhttpdがインストールされていない場合は、以下のコマンドでインストールし、有効化.

$ sudo yum update

$ sudo yum install httpd

$ sudo systemctl enable httpd

$ sudo systemctl start httpd

/etc/httpd/conf.d/の直下に、hoge.confというファイルを作成。(hogeは変更可能)

今回はApacheをプロキシのような中継サーバとして使うので、proxy.confとした。

ProxyPass /metasearch http://localhost:3000/

ProxyPassReverse /metasearch http://localhost:3000/

3000はExpressが使用するデフォルトのポート番号。

httpdを再起動し、設定を反映。

$ sudo systemctl restart httpd

node.jsをダウンロード、インストール(解凍しただけ)

伊藤PCに入れたnode.jsと同じバージョンをインストール

wget https://nodejs.org/dist/v14.15.3/node-v14.15.3-linux-x64.tar.xz

xz -dc node-v14.15.3-linux-x64.tar.xz | tar xfv -

node、npm、node_modulesにパスを通す。(~/.bashrcに以下3行を追加)

export NODE_HOME=$HOME/node-v14.15.3-linux-x64

export NODEPATH=$NODEHOME/lib/node_modules

export PATH=$NODE_HOME/bin:$PATH

express-generatorをインストール

$ npm install express-generator -g

expressの新しいプロジェクトを作成

$ express exp-app

$ cd exp-app

$ npm install

$ npm start &

以降もターミナルで操作を続けるために、npm start は&を付けてバックグラウンドで実行

FWの設定

$ sudo firewall-cmd –add-service=http –zone=public –permanent

$ sudo firewall-cmd –reload

SElinuxの設定

$ sudo setsebool -P httpdcannetwork_connect on

Node.jsアプリをLinux環境で常駐化させる

$ npm install -g forever

expressでアプリを構築した場合はnpm startでnode ./bin/wwwが動くようになっている。

これを踏まえて、foreverで動かすために以下のコマンドを実行

$ forever start ./bin/www

reboot時にExpressアプリを自動起動

vi ~/start.sh

export NODE_HOME=$HOME/node-v14.15.3-linux-x64

export NODEPATH=$NODEHOME/lib/node_modules

export PATH=$NODE_HOME/bin:$PATH

forever start /home/yoshitake/exp-app/bin/www

chmod 700 ~/start.sh

sh ~/start.sh

crontab -e

@reboot /usr/bin/bash /home/yoshitake/start.sh

  • 20201222.1610700777.txt.gz
  • 最終更新: 2021/01/15 08:52
  • by 133.11.144.10