NodeJS adalah mesin Javascript (mesin Google V8 untuk Chrome, ditulis dalam C ++) yang memungkinkan untuk menjalankan Javascript di luar browser. Sementara banyak libraries tersedia untuk memperluas fungsi Node, mesin dilengkapi dengan set modul inti yang menerapkan fungsi dasar.
Saat ini ada 34 modul inti yang termasuk dalam Node:
[ 'assert',
'buffer',
'c/c++_addons',
'child_process',
'cluster',
'console',
'crypto',
'deprecated_apis',
'dns',
'domain',
'Events',
'fs',
'http',
'https',
'module',
'net',
'os',
'path',
'punycode',
'querystring',
'readline',
'repl',
'stream',
'string_decoder',
'timers',
'tls_(ssl)',
'tracing',
'tty',
'dgram',
'url',
'util',
'v8',
'vm',
'zlib' ]
Daftar ini diperoleh dari API dokumentasi Node https://nodejs.org/api/all.html (file JSON:
Sekilas Semua Modul Inti
assert
Modul assert memberikan serangkaian uji asersi sederhana yang dapat digunakan untuk menguji invarian.
buffer
Sebelum pengenalan TypedArray di ECMAScript 2015 (ES6), bahasa JavaScript tidak memiliki mekanisme untuk membaca atau memanipulasi aliran data biner. Kelas Buffer diperkenalkan sebagai bagian dari API Node.js untuk dibuat mungkin untuk berinteraksi dengan aliran oktet dalam konteks hal-hal seperti aliran TCP dan operasi sistem file.
Sekarang TypedArray telah ditambahkan di ES6, kelas Buffer mengimplementasikan
Uin
t8Array
API dengan cara yang lebih optimal dan cocok untuk kasus penggunaan Node.js.
c / c ++ _ addons
Node.js Addons adalah objek bersama yang terhubung secara dinamis, ditulis dalam C atau C ++, yang dapat dimuat ke Node.js menggunakan fungsi require(), dan digunakan seolah-olah mereka adalah modul Node.js biasa. Mereka digunakan terutama untuk menyediakan antarmuka antara JavaScript yang berjalan di libraries Node.js dan C / C ++.
child_process
Modul child_process menyediakan kemampuan untuk menelurkan child process dengan cara yang serupa, tetapi tidak identik, dengan popen (3).
cluster
Sebuah instance Node.js berjalan dalam single thread. Untuk memanfaatkan sistem multi-core, pengguna akan melakukannya terkadang ingin meluncurkan sekelompok proses Node.js untuk menangani beban. Modul cluster memungkinkan kita untuk melakukannya dengan mudah membuat child process yang semuanya berbagi port server.
console
Modul console menyediakan console debugging sederhana yang mirip dengan mekanisme console JavaScript disediakan oleh browser web.
crypto
Modul crypto menyediakan fungsionalitas kriptografi yang mencakup satu set pembungkus untuk hash OpenSSL, HMAC, mengartikan, menguraikan dan memverifikasi fungsi.
deprecated_apis
Node.js dapat deprecate API ketika: (a) penggunaan API dianggap tidak aman, (b) alternatif yang ditingkatkan API telah tersedia, atau (c) perubahan pada API diharapkan dalam rilis besar di masa depan.
dns
Modul dns berisi fungsi-fungsi yang termasuk dalam dua kategori berbeda:
1. Fungsi yang menggunakan fasilitas sistem operasi yang mendasarinya untuk melakukan resolusi nama, dan yang tidak selalu melakukan komunikasi jaringan. Kategori ini hanya memiliki satu fungsi: dns.lookup ().
2. Fungsi yang terhubung ke server DNS aktual untuk melakukan resolusi nama, dan yang selalu menggunakan jaringan untuk melakukan permintaan DNS. Kategori ini berisi semua fungsi dalam modul dns kecuali dns.lookup ().
domain
Modul ini sedang dalam penghentian sementara. Setelah API pengganti diselesaikan, modul ini akan sepenuhnya tidak digunakan lagi. Sebagian besar pengguna terakhir seharusnya tidak memiliki alasan untuk menggunakan modul ini. Pengguna yang benar-benar harus memiliki fungsionalitas yang disediakan domain dapat mengandalkannya untuk saat ini tetapi harus berharap harus bermigrasi ke solusi yang berbeda di masa mendatang.
Events
Sebagian besar API inti Node.js dibangun di sekitar arsitektur event-driven idiomatis asinkron di mana beberapa jenis objek (called "emitters") secara berkala memancarkan events bernama yang menyebabkan Function object ("listeners") dipanggil.
fs
File I / O disediakan oleh simple wrappers di sekitar fungsi POSIX standar. Untuk menggunakan modul ini, perlu ('fs'). Semua metode memiliki bentuk asinkron dan sinkron.
http
Antarmuka HTTP di Node.js dirancang untuk mendukung banyak fitur protokol yang secara tradisional sulit digunakan. Secara khusus, pesan-pesan besar, yang mungkin disandikan. Antarmuka berhati-hati untuk tidak pernah buffer seluruh permintaan atau tanggapan - pengguna dapat melakukan streaming data.
https
HTTPS adalah protokol HTTP melalui TLS / SSL. Dalam Node.js ini diimplementasikan sebagai modul terpisah.
module
Node.js memiliki sistem pemuatan modul yang sederhana. Dalam Node.js, file dan modul dalam korespondensi one-to-one (setiap file diperlakukan sebagai modul terpisah).
net
Modul net memberi kita asynchronous network wrapper. Ini berisi fungsi untuk membuat server dan klien (disebut stream). kita dapat memasukkan modul ini dengan require('net'); .
os
Modul os menyediakan sejumlah metode utilitas terkait sistem operasi.
path
Modul path menyediakan utilitas untuk bekerja dengan jalur file dan direktori.
punycode
Versi modul punycode yang dibundel dalam Node.js sedang tidak digunakan lagi.
querystring
Modul querystring menyediakan utilitas untuk mem-parsing dan memformat string queri URL.
readline
Modul readline menyediakan antarmuka untuk membaca data dari aliran yang Dapat Dibaca (seperti process.stdin) satu baris sekaligus.
repl
Modul repl menyediakan implementasi Read-Eval-Print-Loop (REPL) yang tersedia baik sebagai program mandiri atau termasuk dalam aplikasi lain.
stream
Stream adalah antarmuka abstrak untuk bekerja dengan streaming data di Node.js. Modul stream menyediakan API dasar yang membuatnya mudah untuk membangun objek yang mengimplementasikan antarmuka aliran. Ada banyak objek aliran yang disediakan oleh Node.js. Misalnya, permintaan ke server HTTP dan process.stdout keduanya adalah instance stream.
string_decoder
Modul string_decoder menyediakan API untuk mendekode objek Buffer menjadi string dengan cara yang mempertahankan karakter multi-byte UTF-8 dan UTF-16 yang dikodekan
timers
Modul timer memperlihatkan API global untuk fungsi penjadwalan dipanggil pada periode waktu mendatang. Karena fungsi timer adalah global, tidak perlu untuk memanggil require ('timers') untuk menggunakan API.
Fungsi timer di dalam Node.js menerapkan API yang sama dengan timer API yang disediakan oleh Web Browsers tetapi menggunakan implementasi internal yang berbeda yang dibangun di sekitar Events Node.js.
tls_ (ssl)
Modul tls menyediakan implementasi protokol Transport Layer Security (TLS) dan Secure Socket Layer (SSL) yang dibangun di atas OpenSSL.
tracing
Trace Event menyediakan mekanisme untuk memusatkan penelusuran informasi yang dihasilkan oleh V8, Node core, dan kode userspace.
tracing dapat diaktifkan dengan melewati flag --trace-events-enabled ketika memulai aplikasi Node.js.
tty
Modul tty menyediakan kelas tty.ReadStream dan tty.WriteStream. Dalam kebanyakan kasus, modul ini tidak perlu atau mungkin digunakan secara langsung.
dgram
Modul dgram menyediakan implementasi soket UDP Datagram.
url
Modul url menyediakan utilitas untuk resolusi dan penguraian URL. util Modul util terutama dirancang untuk mendukung kebutuhan API internal Node.js sendiri. Namun, banyak utilitas berguna untuk pengembang aplikasi dan modul juga.
v8
Modul v8 memperlihatkan API yang khusus untuk versi V8 yang dibangun ke dalam biner Node.js.
Catatan: API dan implementasi dapat berubah setiap saat.
vm
Modul vm menyediakan API untuk mengkompilasi dan menjalankan kode dalam konteks V8 Virtual Machine. Kode JavaScript dapat dikompilasi dan dijalankan segera atau dikompilasi, disimpan, dan dijalankan kemudian.
Catatan: Modul vm bukan mekanisme keamanan. Jangan menggunakannya untuk menjalankan kode yang tidak dipercaya.
zlib
Modul zlib menyediakan fungsionalitas kompresi yang diimplementasikan menggunakan Gzip dan Deflate / Inflate.
