Node.js
公式サイトNode.jsとは
Node.jsは、本来ブラウザの中で動くJavaScriptを、サーバーやパソコン上で実行できるようにした環境です。ブラウザ側とサーバー側を同じ言語で書けることが特徴で、多数の同時接続を効率よくさばく仕組みを備えています。また、Webサイトの見た目を作るCSSやJavaScriptを整形・圧縮する開発ツールの多くがNode.js上で動作するため、サーバーとして使わない場合でも、現代のWeb制作には欠かせない基盤になっています。
弊社が採用する理由
弊社では、Node.jsを主に二つの役割で使っています。ひとつは、Webサイトやシステムのフロントエンドを組み立てるビルドツールの実行環境としてです。レスポンシブデザインのためのCSS整理や、JavaScriptの最適化はNode.js上のツールで行っており、PHPで作るシステムでも画面側の品質を高めるために利用しています。もうひとつは、チャットや通知のようなリアルタイム性が求められる処理や、外部のAPIと連携する小さなサーバーを作る場面です。LAMP/LEMP構成を基本としつつ、PHPだけでは扱いにくい部分をNode.jsで補うことで、用途に合った構成を無理なく組めます。フルスタックエンジニアが両方を扱うため、言語の違いによる分断が起きにくい点も採用理由です。
向いている案件
- Webサイト・システムのフロントエンド開発(ビルド・最適化)
- リアルタイム通知やチャットなど同時接続の多い機能
- 外部サービスとのAPI連携を行う中継サーバー
- スマートフォン向けサイトの表示速度改善
保守・移行の観点
Node.jsは新しいバージョンの公開頻度が高く、長期サポート対象の版とそうでない版が分かれています。本番環境では長期サポート対象の版を選び、そのサポート期限に合わせて更新計画を立てるのが基本です。また、Node.jsの周辺では多数の外部パッケージを組み合わせて使うため、パッケージごとの更新と脆弱性情報の確認が保守の中心になります。依存関係を記録したファイルを管理し、更新はステージング環境で動作確認してから本番に反映します。長期間更新していないプロジェクトは、まず依存関係の棚卸しから始めるのが安全です。
組み合わせて使う技術
よくあるご質問
サーバー側はPHPなのに、なぜNode.jsも必要なのですか?
Webサイトの画面を作るCSSやJavaScriptを整理・圧縮する開発ツールの多くがNode.jsで動くためです。サーバーとして使わない場合でも、制作の工程で利用しています。
Node.jsで業務システムを丸ごと作ることはありますか?
要件によっては可能ですが、弊社ではデータベース中心の業務システムはPHPとLaravelを基本にしています。リアルタイム処理やAPI連携などNode.jsの得意分野がある場合に、部分的に組み合わせることが多いです。
関連するサービス
関連する開発ガイド
- モバイル対応の考え方 — レスポンシブと専用サイトの違いスマートフォン対応の方法として、レスポンシブデザイン、モバイル専用サイト、アプリの3つを用途で比較します。それぞれの仕組みと運用の違い、自社に合う方式を選ぶための判断基準を整理します。
- 中小企業のWebシステムに最低限必要なセキュリティ対策専任の担当者がいない中小企業でも押さえておきたい Web システムのセキュリティ対策を、SSL/TLS・認証と多要素認証・権限の最小化・アップデート・バックアップ・ログ・個人情報の順に優先度をつけて整理します。
- 納品後の保守・運用で何が必要かシステムは納品後も動かし続ける必要があります。監視、バックアップと復元テスト、OS・ミドルウェア・CMSのアップデート、ステージングでの検証、保守契約の範囲という基本を整理します。
関連用語: API、レスポンシブデザイン、ステージング環境、フルスタックエンジニア
監修: Unlogical Systems合同会社(杉並区・西荻窪)公開