Node.jsとExpressで最低限のWebアプリを作る
- 2022.06.05
- IT
Webアプリを発展させていくにあたって、まずはシンプルなところから始めていきましょう。
ここから次回は、Node.js→DB: mysqlに接続していきます。
前提条件
- Node.jsのインストール
- Npmのインストール
Node.jsを動かしてみる
まずは簡単に動くものをサクッと。
1 |
mkdir node-test && cd node-test |
で検証用フォルダを作って移動します。
この時、NodeというNode.jsと同じ名前にしてしまうとエラーが起こるので注意してください。
1 |
npm init -y |
これでpackage.jsonというファイルができます。
1 |
touch index.js |
動かす対象のファイルを作ります。
作ったファイルに、
1 |
console.log("hello"); |
を書き込み保存します。
1 |
node index.js |
とうつと、ターミナルにhelloと表示されます。
これでnodejsの最低限のAppは完成です。
Expressの最低限のアプリ
まずはExpressをダウンロードします。
1 |
npm install express |
さきほどのindex.jsファイルを下記のように書き換えます。
1 2 3 4 5 6 7 8 9 10 |
const express = require("express") const app = express(); app.get("/", function(req,res){ res.send("hello"); }) app.listen(50005, function(){ console.log("listen at port 50005") }) |
そして、さきほどと同様に下記コマンドで起動します。
1 |
node index.js |
すでにそのポートは使われている、などのエラーが出る場合はポート番号を変更してください。
最後にブラウザで、localhost:50005と打つと、helloと表示されるとお思います。
ExpressでJsonなど他のファイルを返してみる。
今までは、index.jsonに返却する値・ブラウザに表示する値を直書きしていました。
それでは、別のhtmlファイルやJsonファイルを表示させたい場合はどうするのでしょうか?
HTMLファイルを返却する場合
まずは、HTMLファイルを作成します。
1 |
touch index.html |
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Hello from html</h1> </body> </html> |
次に、Index.jsonの中身を下記のように変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const express = require("express"); const app = express(); const returnData = require("./data.json"); app.get("/html_test", function(req,res){ res.sendFile(__dirname+"/index.html"); }) app.get("/", function(req,res){ res.send(returnData); }) app.listen(50005, function(){ console.log("listen at port 50005"); }) |
Jsonファイルを返却する場合
今回は、安直にpackage.jsonの中身を返すアプリを作ってみます。
1 |
cp package.json data.json |
で返したいファイルを作ります。
index.jsonは、下記のように変更します。
1 2 3 4 5 6 7 8 9 10 11 |
const express = require("express"); const app = express(); const returnData = require("./data.json"); app.get("/", function(req,res){ res.send(returnData); }) app.listen(50005, function(){ console.log("listen at port 50005"); }) |
そして、さきほどと同様に下記コマンドで起動します。
1 |
node index.js |
これでJsonファイルが表示されると思います。
npmのパッケージについて
ファイルの更新時に、毎回node index.jsとするのは大変なので、自動で再起動してくれるパッケージを導入します。
1 |
npm install nodemon |
実行時は、nodemanと打つだけで実行できます。
command not found となる場合は、npx nodemanと打つと実行できるかもしれません。
以上がNode.jsとExpressを使った最低限のアプリです。