LoginSignup
1
4

More than 3 years have passed since last update.

Node.jsのAPIをまとめてみた

Posted at

はじめに

先週ぐらいからNode.jsの参考書を読み始め、途中から
■■ = require('〇〇')
というのが連発してきて、いろんな種類のAPIが使えるのだと知りました。

参考書の最初は「require('events')」や「require('http')」を使っていて、
他にどんなAPIが使えるのか気になり、一覧としてまとめてみました。

※初学者のため誤りがあると思います。
 間違いはコメントしていただけると幸いです。:bow_tone1:

本題の前に

本題の前に、「require」について少しだけ触れておきます。

requireとは、モジュール化されたJavaScriptのファイルをNodeから読み込んで利用できるようにしてくれるものです。

npmを使ってインストールしてきたパッケージを利用する際にもこの「require」を使用します。

著者は普段、C言語を使用していますので、この「require」はC言語のインクルードみたいなものだと理解しています。(あくまでもイメージです。)

本記事は、Nodeをインストールしたらデフォルトで使用できるモジュールについて一覧にしてみました。

Nodeモジュール一覧

下表はNode.js v12.18.2 ドキュメントを参考にまとめました。
公式ドキュメントにはそのAPIの安定性が記載されています。
簡単にまとめると、

安定性:0 - 非推奨
安定性:1 - 実験的
安定性:2 - 安定
(詳しくは ⇒ 公式ドキュメント)

使いたいAPIは、「require('下表のAPI名')」を書けば使えます。

API API名 安定性 説明
Assertion Testing assert 2 アサーションモードの使用
Async Hooks async_hooks 1 非同期リソースの追跡
Buffer buffer ※1 2 バイナリデータを一連のバイト形式に変換
C++ Addons ./build/Release/addon ※2 2 C++で記載されたアドオンをロード
Child Processes child_process 2 子プロセスを生成
Cluster cluster 2 サーバポートを共有する子プロセスを生成
Console console ※1 2 単純なデバッグコンソール
Crypto crypto 2 暗号化機能
DNS dns 2 名前解決
Domain domain 0 複数の異なるIO操作の処理
Events events 2 イベント処理
File System fs 2 ファイルシステム操作
HTTP http 2 HTTPインタフェース
HTTP/2 http2 2 HTTP/2プロトコルの実装
HTTPS https 2 httpsインタフェース
Inspector inspector 1 V8インスペクターとの対話
Net net 2 TCPまたはIPCサーバ・クライアントの作成
OS os 2 OS関連のユースティリティ
Path path 2 ファイルおよびディレクトリパス操作
Process process ※1 記載なし プロセス制御
Punycode punycode 0 Punycodeモジュールのバンドル
Query Strings querystring 2 食える文字列の解析及びフォーマット
Readline readline 2 ストリームから1行ずつデータ読み取り
REPL repl 2 REPLの実装
Stream stream 2 ストリーミングデータの操作
String Decoder string_decoder 2 文字列にデコード
Timers timers ※1 2 スケジュール操作
TLS/SSL tls 2 TLSおよびSSLプロトコルの実装
Trace Events trace_events 1 トレースイベント操作
TTY tty ※3 2 tty操作
UDP/Datagram dgram 2 UDPデータグラムソケットの実装
URL url 2 URL解決および解析
Utilities util 2 APIのユースティリティ
V8 v8 記載なし V8固有のAPI
VM vm 2 V8仮想マシン
Worker Threads worker_threads 2 スレッド作成
Zlib zlib 2 圧縮機能

※1. グローバルスコープ内にあるため、requireを使用する必要はほとんどない
※2. build/Release/addon.nodeという名前でアドオンが作成
※3. ほとんどの場合、直接操作する必要はない

さいごに

調べてみると、使っていないAPIがたくさんあることに気づきました。
フレームワークもたくさんあるのでそこら辺も一回整理したいですね。

参考

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4