Node.jsの基礎を初心者向けに徹底解説!元ぼっち大学生のフリーランスエンジニアがおすすめの本を紹介しつつ詳しく説明します
今回はプログラミング初心者のぼっち大学生のみなさんに向けて、大学ぼっち時代にプログラミングを学び始め、在学中にフリーランスエンジニアとして独立した経歴を持つ僕が、Node.jsの基礎知識について、できるだけ分かりやすく解説していきます。Node.js初心者におすすめの本も何冊か紹介しますので、興味のあるぼっち大学生はぜひ一度読んでいってください。
たっちゃん
ぼっちユニバーシティの運営者です。
大学ぼっち時代にプログラミングを学び始め、在学中にフリーランスのWebエンジニアとして独立。
本業はWebアプリケーションやWebサイトの受託開発がメインですが、最近はFlutterにハマっています。
趣味はバックパッカー旅行と立ち飲み屋さん巡り。
現在は都内でひとり法人を経営しながら、現役のぼっち大学生のみなさんへお役立ち情報を発信しています。
0. はじめに
ぼっち大学生のみなさんこんにちは!
今回は、プログラミング初心者のぼっち大学生の皆さんと一緒に、Node.jsの基礎知識について学んでいきたいと思います。
1. Node.jsって何?初心者にもわかるように説明します
Node.js(ノード・ジェーエス)とは、JavaScriptというプログラミング言語を使って、コンピューターやインターネット上で動くプログラムを作ることができるツールです。
普段私たちが見ているウェブサイトは、JavaScriptを使って動かしていることが多いです。
Node.jsを使うことで、JavaScriptが使える場所が広がります。
1-1. Node.jsの基本概念
1-1-1. JavaScriptとの関係
JavaScriptは、もともとウェブサイトの中で動くプログラムを作るために作られた言語です。
ウェブサイトを見ているときに、画面が動いたり、ボタンを押すと何かが起こったりするのは、JavaScriptのおかげです。
Node.jsは、JavaScriptを使って、ウェブサイト以外の場所でもプログラムを作れるようにしたツールです。
1-1-2. サーバーサイドJavaScriptの特徴
Node.jsを使うことで、JavaScriptを「サーバーサイド」と呼ばれる場所でも使えるようになります。
サーバーサイドとは、インターネット上で情報を送受信するためのコンピューターのことです。
これまでJavaScriptは「クライアントサイド」(ウェブサイトを見ている人のコンピューター)でしか使えませんでしたが、Node.jsのおかげで、サーバーサイドでも使えるようになりました。
1-2. Node.jsのメリット・デメリット
1-2-1. 高速な処理性能
Node.jsは、JavaScriptをとても速く動かすことができる特徴があります。
これは、Node.jsが「V8」というエンジンを使っているからです。
V8は、Googleが開発したJavaScriptのエンジンで、とても速く動作します。
だから、Node.jsを使ったプログラムも速く動きます。
1-2-2. 豊富なライブラリ・モジュール
Node.jsには、たくさんの便利なツールが用意されています。
これらのツールは、「ライブラリ」や「モジュール」と呼ばれます。
例えば、ファイルを読み書きするためのツールや、インターネット上のデータをやり取りするためのツールなどがあります。
これらのツールを使うことで、プログラムを簡単に作ることができます。
ファイルを読み書きするためのツールを使う例:
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
1-2-3. デメリットと注意点
Node.jsにもいくつかデメリットがあります。
例えば、複雑なプログラムを作るときに、処理がうまくいかないことがあるかもしれません。
これは、「コールバック」と呼ばれる機能が原因で、プログラムの流れが分かりにくくなることがあります。
しかし、最近では「async/await」という機能が使われることで、この問題が解決されつつあります。
また、Node.jsはまだ新しいツールなので、古いコンピューターやシステムとの互換性がないことがあります。
そのため、古いシステムを使っている場合は、注意が必要です。
以上が、Node.jsについての初心者向けの説明です。
Node.jsを使って、JavaScriptでプログラムを作ることができるようになりましょう。
そして、ウェブサイトやアプリを開発して、たくさんの人に喜んでもらいましょう!
2. Node.jsのインストール方法と使い方
Node.jsを使ってプログラムを作るためには、まずインストールしなければなりません。
インストール方法は、使っているコンピューターの種類によって少し違います。
ここでは、WindowsとmacOSのインストール方法を説明します。
2-1. インストール方法を丁寧に説明
2-1-1. Windowsでのインストール方法
WindowsでNode.jsをインストールするには、以下の手順を行います。
まずは、Node.jsの公式サイトにアクセスします。
次に、「LTS」ボタンをクリックして、インストーラーをダウンロードします。
LTSとは、長期サポート版のことで、安定して使えるバージョンです。
ダウンロードしたインストーラーを開いて、指示に従ってインストールを進めます。
これで、Node.jsがインストールされます。
2-1-2. macOSでのインストール方法
macOSでNode.jsをインストールするには、以下の手順を行います。
Node.jsの公式サイトにアクセスします。
「LTS」ボタンをクリックして、インストーラーをダウンロードします。
ダウンロードしたインストーラーを開いて、指示に従ってインストールを進めます。
これで、Node.jsがインストールされます。
2-2. Hello World!でNode.jsの使い方を学ぶ
Node.jsをインストールしたら、早速使ってみましょう!
ここでは、簡単なプログラムを作って、Node.jsの使い方を学びます。
2-2-1. プログラムの作成
まず、「hello.js」という名前のテキストファイルを作ります。
そして、以下のようにプログラムを書きます。
console.log('Hello, World!');
これは、画面に「Hello, World!」と表示するプログラムです。
2-2-2. プログラムの実行方法
プログラムを作ったら、実行してみましょう。
コンピューターのターミナル(Windowsではコマンドプロンプト)を開いて、以下のコマンドを入力します。
node hello.js
すると、画面に「Hello, World!」と表示されます。
これで、Node.jsのインストール方法と使い方が分かりました。これからNode.jsを使って、さまざまなプログラムを作ってみましょう!おもしろいアイデアを思いついたら、どんどん実現してみてくださいね。
3. Node.jsでプログラムを作ってみよう
Node.jsをインストールして使い方が分かったら、次はプログラムを作ってみましょう。
ここでは、Node.jsの基本的な文法と、主要な機能・ライブラリを紹介します。
3-1. Node.jsの基本的な文法
3-1-1. 変数とデータ型
Node.jsでは、変数を使ってデータを保存できます。
変数には、文字や数字、真偽値(true/false)などのデータが入ります。
変数を作るときは、「const」や「let」を使います。
const name = 'Taro';
let age = 10;
上の例では、「name」という変数に「Taro」という文字を入れています。
また、「age」という変数に「10」という数字を入れています。
3-1-2. 制御構文
Node.jsでは、「if」や「for」などの制御構文を使って、プログラムの流れを作ります。
if (age >= 20) {
console.log('大人です');
} else {
}
for (let i = 1; i <= 5; i++) {
console.log(i);
}
上の例では、「age」が20以上なら「大人です」と表示し、それ以外なら「子どもです」と表示しています。
また、「for」文で1から5までの数字を順番に表示しています。
3-1-3. 関数とスコープ
Node.jsでは、「function」を使って関数を作ります。
関数は、特定の処理をまとめたもので、繰り返し使うことができます。
function greet(name) {
console.log('Hello, ' + name + '!');
}
greet('Taro');
greet('Hanako');
上の例では、「greet」という関数を作って、名前を渡すと挨拶するプログラムを作りました。
3-2. Node.jsの主要な機能・ライブラリ紹介
3-2-1. npm(Node Package Manager)の利用方法
npmは、Node.jsで使えるライブラリやツールを管理するためのツールです。
npmを使って、便利なライブラリをインストールしたり、アップデートしたりできます。
ライブラリをインストールするには、ターミナルで以下のようにコマンドを入力します。
npm install ライブラリ名
3-2-2. 代表的なライブラリとその使い方
Node.jsにはたくさんのライブラリがありますが、ここでは「Express」という代表的なライブラリを紹介します。
Expressは、ウェブサーバーを作ることができるライブラリです。
Expressを使うと、簡単にウェブサイトやアプリを開発できます。
まずは、Expressをインストールしましょう。
npm install express
次に、以下のようなプログラムを作ります。
ファイル名は「app.js」としましょう。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('こんにちは、世界!');
});
app.listen(port, () => {
console.log(`サーバーが http://localhost:${port} で起動しました`);
});
プログラムを作ったら、ターミナルで以下のコマンドを入力して実行します。
node app.js
これで、ウェブサーバーが起動します。
ブラウザで http://localhost:3000 にアクセスすると、「こんにちは、世界!」と表示されます。
以上が、Node.jsでプログラムを作る方法と、主要な機能・ライブラリの紹介です。
これからNode.jsを使って、さまざまなプログラムを作ってみましょう。
楽しいアイデアを思いついたら、どんどん実現してみてくださいね。
4. Node.jsでWebアプリを開発しよう
Node.jsを使って、ウェブアプリを開発してみましょう。
ここでは、ウェブアプリ開発の流れと、データベースを使った開発方法を紹介します。
4-1. Webアプリ開発の流れ
ウェブアプリを開発するには、以下の手順を踏みます。
4-1-1. サーバーの構築
まずは、前回紹介した「Express」を使って、ウェブサーバーを構築します。
以下のプログラムを「app.js」という名前で作成しましょう。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('こんにちは、世界!');
});
app.listen(port, () => {
console.log(`サーバーが http://localhost:${port} で起動しました`);
});
4-1-2. ルーティングの設定
次に、ウェブアプリのページにアクセスするために、「ルーティング」を設定します。
ルーティングとは、URLに応じて表示するページを決めることです。
以下のように、新しいページを追加してみましょう。
app.get('/about', (req, res) => {
res.send('これは、私たちについてのページです。');
});
これで、 http://localhost:3000/about というURLにアクセスすると、「これは、私たちについてのページです。」と表示されます。
4-2. Node.jsでデータベースを使った開発方法
Webアプリケーションでは、データベースを使ってデータを保存したり、読み込んだりします。
ここでは、Node.jsでデータベースを使う方法を紹介します。
4-2-1. 主要なデータベースと接続方法
Node.jsでは、いろいろなデータベースに接続できますが、ここでは「MongoDB」というデータベースを使ってみましょう。
まず、「mongoose」というライブラリをインストールします。
npm install mongoose
次に、以下のようなプログラムでデータベースに接続します。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
4-2-2. CRUD操作の実装
データベースを使って、データの作成(Create)、読み込み(Read)、更新(Update)、削除(Delete)を行う方法を学びます。
これを「CRUD操作」と呼びます。
まず、データを保存するための「スキーマ」というものを作成します。
スキーマとは、データの構造を定義したものです。
以下のように、「User」という名前のスキーマを作成しましょう。
const { Schema } = mongoose;
const userSchema = new Schema({
name: String,
age: Number,
});
const User = mongoose.model('User', userSchema);
これで、「User」という名前のデータを作成・読み込み・更新・削除できるようになりました。
・作成(Create)
新しいユーザーを作成してデータベースに保存するには、以下のようにします。
const newUser = new User({ name: 'Taro', age: 25 });
newUser.save();
・読み込み(Read)
ユーザーのデータを読み込むには、以下のようにします。
User.find({}, (err, users) => {
if (err) console.error(err);
console.log(users);
});
・更新(Update)
ユーザーのデータを更新するには、以下のようにします。
User.updateOne({ name: 'Taro' }, { age: 26 }, (err) => {
if (err) console.error(err);
console.log('更新しました');
});
・削除(Delete)
ユーザーのデータを削除するには、以下のようにします。
User.deleteOne({ name: 'Taro' }, (err) => {
if (err) console.error(err);
console.log('削除しました');
});
以上が、Node.jsでデータベースを使った開発方法です。
これらの知識を活用して、ウェブアプリを開発してみましょう。
もちろん、データベースやライブラリは他にもたくさんありますので、自分に合ったものを見つけて活用してくださいね。
5. プログラミング初心者のぼっち大学生におすすめしたいNode.js本を紹介します
まとめに入る前に、Node.jsに興味のあるぼっち大学生のみなさんに、現役エンジニアの僕がおすすめしたい書籍を紹介しておきたいと思います。
5-1. Node.jsフレームワーク超入門
© 秀和システム
Node.jsの1冊目の書籍としておすすめしたいのは、「Node.jsフレームワーク超入門」になります。
著者の掌田津耶乃さんは、Node.jsだけでなく、Vue.js・Nuxt.jsやReact.js・Next.jsといったフロントエンド開発でよく利用されるフレームワークに加え、LaravelやFlutter、GoogleAppSheetなど、あらゆるジャンルの解説本を手掛けているすごい人なんです。
この「Node.jsフレームワーク超入門」は、Webアプリケーション開発の核となるNode.jsの基本から、フレームワークの使い方だけでなく、実際にWebアプリケーションを作るところまで、手を動かしながら覚えることができる入門書。
僕も数多くのNode.jsを解説した書籍を見てきましたが、この本がダントツで分かりやすかったです!
「Node.jsフレームワーク超入門」は、JavaScriptを一通り学んでみて、今度はNode.jsに興味が湧いてきたというぼっち大学生のみなさんが、最初に手に取る解説書として最適な本と言えるでしょう。
5-2. 実践Node.js入門―基礎・開発・運用
© 技術評論社
2冊目に紹介するのは、実践的なNode.jsの知識を学べる「実践Node.js入門―基礎・開発・運用」になります。
これからNode.jsを学ぼうというぼっち大学生のみなさんの中には、Webエンジニアを目指して本格的に学習に取り組んでいる人も多いのではないでしょうか?
「実践Node.js入門―基礎・開発・運用」には、Node.jsで実際にWebアプリケーション開発を始めるための知識がしっかりとまとめられています。
- 基礎知識
- 環境構築
- 重要文法
- 非同期
- CLIツール開発
だけでなく、Expressを用いたサーバーサイドの開発や、フロントエンド(React)との連携など、Node.jsの全体像を、この1冊で学ぶことができます。
この「実践Node.js入門―基礎・開発・運用」は、
- JavaScriptの学習を一通り終えている
- React.jsやNext.jsに興味がある
- 他言語でサーバサイド開発を学んだ経験があり、Node.jsも身につけたい
というぼっち大学生のみなさんに、ぜひおすすめしたい書籍と言えるでしょう。
6. まとめ
今回は、プログラミング初心者のぼっち大学生向けに、Node.jsの基礎知識を解説させていただきました。
読者のぼっち大学生のみなさんが、もしJavaScriptをある程度学習しているとしたら、今回紹介したNode.jsは、ぜひ学んでみていただきたい技術。
なぜなら、Node.jsを学ぶことによって、みなさんが培ったJavaScriptのスキルを、サーバーサイドの開発にそのまま活かせるからに他なりません。
そして、みなさんがNode.jsを独学で学ぶことは、もちろん不可能ではありませんが、せっかくこれからNode.jsを学んでWebアプリケーション開発のスキルを磨くのであれば、より実践的な環境で学ぶことを僕はおすすめします。
そこでぼっち大学生のみなさんに紹介しておきたいのが、サブスク型プログラミングスクールのSAMURAI TERAKOYA(侍テラコヤ)になります。
SAMURAI TERAKOYA(侍テラコヤ)であれば、飲み会1回分ほどの費用で、より効率的かつ確実にNode.jsについて学ぶことが可能です。
SAMURAI TERAKOYA(侍テラコヤ)の詳細については、こちらの記事で解説していますが、
- 40種類以上に及ぶ学び放題の教材
- 平均回答スピード30分以内のQ&A掲示板
- 月1回〜の現役エンジニアとのオンラインレッスン
- プログラミング学習を継続できる学習ログ
を、月額2,980円〜という破格の料金で利用することができます。
Node.jsの学習に興味があり、プログラミングスクールで学ぶことも視野に入れていたが、費用面がネックとなり、なかなか学習に手を付けられなかったというぼっち大学生のみなさんは、ぜひ一度このSAMURAI TERAKOYA(侍テラコヤ)に無料で相談してみてはいかがでしょうか?