Node.jsとは?JavaScriptでサーバー開発を始めよう
Web開発といえば、JavaScriptは「ブラウザで動く言語」というイメージが強いかもしれません。
しかし現在では、JavaScriptはサーバー側でも動かすことができます。
それを可能にしたのが Node.js です。
Node.jsを使うことで、JavaScriptだけで
- Webサーバー
- API
- バッチ処理
- CLIツール
- リアルタイム通信アプリ
などを作ることができます。
この記事では、Node.jsの基本を初心者向けに解説します。
Node.jsとは
Node.jsとは
JavaScriptをサーバーサイドで実行できる実行環境(ランタイム)
です。
通常JavaScriptはブラウザ上で動きます。
Chrome
Safari
Edge
FirefoxしかしNode.jsを使うと、PC上でJavaScriptを直接実行できます。
例
console.log("Hello Node.js");これを
node app.jsと実行するだけで動きます。
つまりNode.jsは
「JavaScriptをアプリケーション開発言語に変えた存在」
とも言えます。
Node.jsが生まれた理由
Node.jsが登場したのは 2009年。
開発者は
Ryan Dahl(ライアン・ダール) です。
当時のWebサーバーは
- 同時接続に弱い
- リアルタイム処理が苦手
という問題がありました。
そこでNode.jsでは
イベント駆動 + 非同期処理
という仕組みを採用しました。
これにより
- 大量アクセスに強い
- 高速
- 軽量
という特徴を持つサーバーが実現しました。
現在では
- Netflix
- PayPal
- Uber
など多くの企業が利用しています。
Node.jsの特徴
Node.jsにはいくつかの大きな特徴があります。
1 JavaScriptだけでフルスタック開発
フロントエンド
JavaScriptバックエンド
Node.jsつまり
同じ言語でフロントとバックエンドを開発できます。
これがNode.jsの大きなメリットです。
2 非同期処理が得意
Node.jsは
ノンブロッキングI/O
という仕組みで動いています。
例えば
通常の処理
A処理
↓
B処理
↓
C処理Node.jsでは
A処理
B処理
C処理
を並行処理が可能です。
そのため
• APIサーバー
• チャット
• リアルタイム通信
に向いています。
3 npmという巨大なライブラリ
Node.jsには
npm (Node Package Manager)
があります。
npmには、200万以上のパッケージが公開されています。
例
express
axios
lodash
react
typescriptたった1行でインストールできます。
npm install expressこのエコシステムの大きさもNode.jsの魅力です。
Node.jsでできること
Node.jsは様々な用途に使われています。
Web API
REST API
GraphQL例
Node.js + ExpressWebアプリケーション
Next.js
Nuxtリアルタイム通信
Socket.io
WebSocketCLIツール
例
npm
vite
eslint実は多くの開発ツールがNode.jsで作られています。
Node.jsを実行してみる
まずは簡単なプログラムを書いてみます。
app.js
console.log("Hello Node.js");実行
node app.js結果
Hello Node.jsこれだけでNode.jsが動いています。
Node.jsで簡単なWebサーバー
Node.jsには標準でHTTPモジュールがあります。
const http = require("http");
const server = http.createServer((req, res) => {
res.write("Hello Node.js Server");
res.end();
});
server.listen(3000, () => {
console.log("Server running");
});実行
node server.jsブラウザ
http://localhost:3000これだけでWebサーバーが完成します。
Node.jsが向いているサービス
Node.jsが特に得意なのは
- APIサーバー
- チャット
- SNS
- ストリーミング
- リアルタイムアプリ
です。
逆に
- CPUを大量に使う処理
- 大規模な数値計算
はあまり得意ではありません。
まとめ
Node.jsは
- JavaScriptでサーバー開発ができる
- 非同期処理が強い
- npmの巨大なエコシステム
- フルスタック開発が可能
という特徴を持つ非常に人気の技術です。
現在では、Web開発のスタンダード技術の1つになっています。
次回は、Node.jsの環境構築
コメント