Node.js API - 標準モジュール

Node.js を使うと PC 上で JavaScript を実行できるようになります。 ただ、 JavaScript はもともとクライアントサイドの言語のため、 ファイルを直接操作するなどの API はありません。
そこで Node.js はプログラムとして動作させるために必要な各種 API をモジュールとして用意しています。 その標準モジュールに関する記事を書いてみました。

標準モジュールと API

Node.js の API を提供するモジュールは Node.js とともに標準でインストールされています。 それらの多くも使用する場合には require によるロードは必要ですが、 npm でのインストールを行うことなく、そのまま使うことができます。 ちょうど C, C++ の標準ライブラリーのような感じです。 ただ、 Node.js はサーバーサイドのアプリケーションを主な対象としているため、 HTTP などの通信に必要なモジュールも多く用意されています。

標準モジュール

Node.js のドキュメントで説明されているモジュールをリストにまとめました。 これらのうち、気になったモジュールについては少しずつ解説記事も書いていこうかなと考えています。
モジュール require 概要 解説
Events events イベント処理
Node.js の API の多くがこれを使った非同期イベント駆動で構築されている。
link
Stream - (stream) ストリームのインターフェース [ベースクラスを使う場合には require]
標準出力、 HTTP リクエストなど様々なオブジェクトがこのインターフェースで実装されている。
 
Console - デバッグ用などでのコンソール出力 [console : グローバルオブジェクト]
ブラウザーでの console に相当するオブジェクト
 
Process - カレントプロセスの情報、操作 [process : グローバルオブジェクト]
コマンド引数や環境変数などの情報や exit による終了など プログラムとして動作するために必要な基本的な機能群
1 2 3
Child Processes child_process 外部プログラムの実行など子プロセスの実行、管理  
Cluster cluster サーバーポートの複数プロセスでの共有  
Readline readline 対話型インターフェースのプログラムでよく使われている readline ライブラリーにあたる機能  
Utilities util 他のモジュールからも呼ばれるような汎用関数群  
URL url URL の文字列解析 link
Query Strings querystring クエリー文字列(URL 中の ? 以降)
Path path ファイルパスの文字列処理 link
File System fs ファイルの I/O、ファイル情報の取得、ファイル・ディレクトリー操作 など  
Buffer - バイナリーデータ用ストリームオブジェクト [Buffer : グローバルなコンストラクター]
ES6 では Uint8Array があるが、Node.js 的にはこちらがいいらしい。
 
String Decoder string_decoder Buffer のデコーダー  
DNS dns DNS による ドメイン名、 IP アドレス の解決
DNS サーバーに直接問い合わせ、OS の機能 の 2 通りの方法が使える。
 
Punycode punycode Punycode (ドメイン名で使われる文字符号化方式) のエンコード、デコード  
Net net ソケット(TCP/IP)通信
HTTP などよりも低レベル(下位層)の通信機能
 
HTTP http HTTP サーバー、クライアント  
HTTPS https HTTPS(TLS/SSL を使った HTTP)用  
TLS/SSL tls TLS/SSL (暗号化した通信)  
Crypto crypto OpenSSL などをラップした暗号化機能  
ZLIB zlib GZip, Inflate でのデータ圧縮、解凍
最近の http サーバーでは gz で圧縮されたまま送って、ブラウザーで解凍することが多い
 
UDP/Datagram dgram UDP (データグラムを送受信するプロトコル)通信
TCP と違いデータの完全性が保証されないので、途中でデータが抜け落ちても問題が少ない音声や画像のストリーム配信などに使われる。
 
OS os OS 関連情報の取得
どの OS かというだけなら process.platform で可能。
 
V8 v8 V8 エンジン関連  
VM vm JavaScript コードの実行
JavaScript 標準の eval() より細かく制御できる。
 
(※) "Domain" は非推奨(Deprecated)、"TTY" は直接使う必要はないので、省略。

機能

Node.js のドキュメントには出ていますが、モジュールというとちょっと違うかなという機能はこちらにまとめました。
機能 概要 解説
REPL 対話モード  
Debugger デバッグモード  
Modules モジュール管理システム  
Globals Node.js で利用できるグローバルオブジェクト群  
Errors エラー処理  
Assertion Testing アサーション(表明) 機能  
Timers タイマー機能 link
C/C++ Addons Node.js で C/C++ ライブラリーを使用するための仕組み  



関連記事
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
56位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
9位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

12月 | 2025年01月 | 02月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。