6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

フロントエンドエンジニアのNode.js基礎学習〜

Last updated at Posted at 2021-08-21

はじめに

近年、フロントエンドでもバックエンドの開発経験・知識が求められている時代になっているおり、フロントとして市場価値を高める上でも意識いたいっすよね。

今まではJSを中心にVue,Reactなどを学んでいたのですが、今回はサーバーサイドのJS実行環境であるNode.jsを入り口にバックエンドを少しづつ学習していこうと思い、妥当な流れでNode.jsを技術選定しました。(phpとかrubyでもありかなと思いました。。)

  • 今回はNode.jsとは何か?
  • Node.jsでデファクトスタンダードのExpressとは?

以上を初学者向けにアウトプット&備忘録として執筆しました。

ちなみに今年2021年stackoverflow survey 2021で人気のある言語技術でNode.jsは第6位でした。
思ったより上位したね

Node.jsとは

冒頭でもふれたように、サーバーサイドのJavaScript実行環境のこと。

また、大量の同時接続をさばけるネットワークアプリケーションの構築を目的として設計されたJavaScript環境です。

特徴

  • フロントからサーバー部分までJavaScriptの記述ができる。

  • 軽量なWebサーバーの構築ができる複数人が利用してもCPUの負荷軽減。(重たくならない。)

  • 非同期処理により、大量アクセスに耐え高速処理の実現。

  • 共有レンタルサーバーがなく、VPSを使用をインストールする必要がある。
    ※VPS(仮想プライベートサーバー: Heroku, Google App Engine, ロリポップなど)

基礎知識

まず使用する上で最低限の知っておきたい以下の三つからご説明します。

nvm

Node Version Managerの略。Node.jsのバージョンを切り替える時に使用するツール。

nvm-公式Github

  • nvmコマンドを使用することで、インストール可能なNode.jsのバージョン確認、インストールや使うのNodeの切り替えを行うことができます。

node_module

様々なモジュールが集められたフォルダのこと。

  • 複数のモジュールを一つにまとめたのがパッケージ(package)です。また、ここで言うモジュール(module)はJSで記述されたファイルで、再利用できるようにしたファイルのことを指します。

npm

Node Package Managerの略。Node.jsのパッケージを管理するためのツール。

  • 正確にはnode_moduleを管理するためのツールです。npmコマンドを使用することで、パッケージのインストールやインストールしたものを確認することができます。インストール先はpackage.jsonファイルになり、インストールしたパッケージのバージョン管理をpackage-lock.jsonが担っています。

📌ここまで確認しておきたいところ

 ここは僕がNode.jsを学習する上で思ったところですが、サーバー側のNode.jsと呼ぶくらいだから何か特別な書き方をするのではないかとちょっぴり警戒をしていましたがあくまでJavaScript言語になりますので基本的には変わりません。

ただ、サーバーサイドとして効率よく実装する時に必要なフレームワークライブラリを使用するのであまり見慣れないメソッドがたびたび出てきます。ここはフロント部分でも同じことが言えますね。
(初めてのサーバーサイド学習なので謎の先入観がありました。💦)

様々なライプラりやプラグインが数多くありますが、今回は王道なNode.jsのフレームワーク Expressについてご説明します。

Express

express-facebook-share.png

Express-公式ドキュメント

インストール方法

npm install express --save

特徴

独自のサーバー開発や簡単にGETやPOST通信などを実現することができます。

使い方

今回は簡単にルーティングとサーバーの立ち上げ方法についてやっていきます。

app.js
var express = require('express');
var app = express();

get('/', function(res, req) {
  res.send('最近驚いたのは、なまっていたこと。');
});

app.listen(3000);

  • まず、一行目のrequire()はモジュールを読み込む時に使用する。今回はExpressを使用するので、require('express')で読み込む。
  • 二行目で読み込んだモジュールを初期化(インスタンス化)するため、変数appへ代入し、今回必要とするメソッド(GETやPOSTなど)を使えるようにします。

そして、以下がExpressが活用されている場面です。

app.js
get('/', function(res, req) {
  res.send('最近驚いたのは、なまっていたこと。');
});

app.listen(3000);
  • ここの3〜5行目で、get()内の第一引数で指定した/にリクエスト処理をします。そして第二引数の関数内でres.send()によって、レスポンスにsend()を使用することでブラウザ上にテキストを表示すると言った流れになります。
    (今回は、ブラウザ上に「最近驚いたのは、なまっていたこと」が表示されます。)
    言い方を変えれば、サーバー上の/パスに移動した時にテキストが表示されます。

  • 最後にlisten()で第一引数にポート番号を指定することでサーバーの起動ができます。今回は、ポート番号3000を指定しているのでコマンドを実行した時に、http://localhost:3000/へアクセスすれば、テキストが表示されます。

  • コマンドについては下記を実行してWebサーバーを起動させます。

node app.js

このように、記述することで内容は薄いですがルーティングとサーバーの構築をすることができました。
今回は、/で表現していますが、下記のように

app.js
get('/hogehoge', function(res, req) {
  res.send('hogehoge');
});

/hogehogeを指定しルーティングすることでブラウザ上に、hogehogeと表示されます。

参考記事

https://expressjs.com/
https://github.com/nvm-sh/nvm

感想

今回はNode.jsの特徴を中心にまとめました。まだまだ、API開発むけのプラグインやMVCに向いているフレームワークなど様々あるのでどんどん積極的に使用していいきたいところです。Expressについてもまだまだ知見が浅いのでまた踏み込んだ内容をアウトプットしていきたいです!!

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?