Node.jsは、JavaScriptをブラウザの外でも動かせるようにした仕組みのことです。
言語的特徴
(=関数の外で定義された変数を自由に使える)
・比較的単純な型で構成されており、JSONと呼ばれるシリアライズの仕組みがある。
・npmというパッケージ管理システムがあり、外部ベンダーが様々なパッケージ(ライブラリ)を配布しており、再利用可能な資源が豊富にある。
・フロントエンドで使用されるjavascriptをバックエンドで使えるという事から、学習障壁が低い。
Node.jsで何ができるの?
サーバーサイドアプリケーション開発
Express、Nestなどのフレームワークを使用して、Webサーバーやログイン機能付きのシステムなどを構築できます。もともとNode.jsは大量の同時接続に耐えられることを目的として設計されたようで、非同期I/O処理によって効率的に処理することができます。
APIサービスの構築
RESTful APIやGraphQL APIを簡単に構築できます。JSONデータの処理に優れており、フロントエンドアプリケーションやモバイルアプリとのデータ通信の中継役となります。リクエスト処理、レスポンス形成、ミドルウェア設計が容易で、マイクロサービスアーキテクチャの実装にも適しています。
リアルタイムアプリケーション
Socket.IOやWebSocketを使用して、チャットアプリやオンラインゲームなどのリアルタイム処理が必要なアプリケーションを作成できます。通常のWebサイトは更新ボタンを押さないと新しい情報が表示されませんが、Node.jsを使うと、チャットアプリのように相手のメッセージがすぐに表示されるような仕組みが作れます。
IoTデバイスのプログラミング
センサーやアクチュエーターと連携してリアルタイムにデータを取得したり、それに応じた動作をさせることができます。スマホアプリやフロントエンドとつないで、外部からデバイスの状態を確認したり操作したりすることもできます。(これやってみたい)
Node.jsが選ばれる理由とメリット
非同期処理とイベント駆動でスケーラブルな処理が可能
Node.jsは「処理待ちで止まらない」仕組み(非同期処理)が得意です。チャットアプリやゲームのようなリアルタイム通信にも強く、大人数から同時にアクセスがあってもサクサク動きます。PHPやRubyよりも同時処理に強いのがポイントです。
npmでライブラリが豊富&導入が簡単
npm(Node Package Manager)いう仕組みで、便利な機能を簡単に追加できます。これにより、アプリケーション開発時に必要な機能をすぐに追加でき、開発スピードを大幅に向上させます。
JavaScriptひとつでフロントもバックも書ける
フロントエンド(ReactやVueなど)とバックエンド(Node.js)をどちらもJavaScriptで書けるので、開発者はコードの一貫性を保ちながら、フルスタックアプリケーションの開発が可能になります。PHPやPythonでは別々の言語で書く必要がありますが、Node.jsならまとめて学べて効率的です。
学習コストが低く、JavaScript経験者にとくに入りやすい
すでにJavaScriptに触れたことがあるなら、Node.jsはすぐに始められます。文法がほとんど同じなので、フロントエンドからバックエンドへのステップアップにも最適です。PythonやRubyと比べても、JavaScript経験者にとっては圧倒的に入りやすいです。
*COMMENT*
イェイン ヘイン
*コメント*
プログラミングに興味ある方は是非参加をおすすめします。基礎から教えてくださって業務でもお聞き出来ないことやプログラミングについての知識が身に付くと思います。今回サーバ言語の一つNodejsの基礎を学ばせて頂きました。これから続けて学ばせて頂きたいと思います。
*コメント*
下川 春樹
*コメント*
今回は、Nさんからリクエストのあった「Node.js」についての回でした。
前半は座学でしたが、いつもより内容が濃くちょっと難しめでした。
後半は実際に「Node.js」をインストールしてみて、WEBサーバーを立ち上げてみるという事にチャレンジしました。VSCodeとGitHub Copilotを使ってやっていったのですが、インストールして使えるまでに時間がかかってしまいました。。。
他にも出来そうな事をAIと相談しながらやってみたいと思います。
*コメント*
則岡 えり
*コメント*
今日はNode.jsについて教えていただきました。
私が前から気になっていてリクエストしたものを取り上げていただき、とても嬉しい回でした!
Node.jsは前に少しだけ触ったことがあるのですが、訳も分からずAIに丸投げしていたので
npmやモジュールが何なのかというから教えていただき、とても勉強になりました。
ブラウザがDOMを生成し、Javascriptに渡すことで操作ができる、というお話しが面白かったです。
今まであまり何も考えずにJavascriptを使っていましたが、そもそもの仕組み、の話は新鮮でした。
VSコードを使って、node.jsでwebサーバーを立ち上げる、ということにチャレンジしました。
いろんなモジュールというものがあるようなので、まずはどんなものがあるのか調べてみて
それから何かを作るのにチャレンジしたいです。
*コメント*
山本 あやこ
*コメント*
正直まだ内容は難しかったですが、Node.js=裏側で動くJavaScriptということだけでも今回知れて良かったです。デザイナーとしても、少しずつ理解を深めていけたらと思います!
*コメント*
石川 航
*コメント*
今回はnode.jsを活用してのサーバーの立ち上げに挑戦してみました
Webに関わる身としてサーバーは身近な存在のはずなのに、今回改めて触れてみると複雑な点が多く、ほとんど最初の設定などに時間をかけてしまいました
昨今はAIに任せれば良いという声もありますが、自分自身がちゃんと知識として持っていないとAIの強みを引き出せないので、引き続き学びを糧にしていきます
*コメント*
*コメント*