Kami mulai menerbitkan serangkaian materi yang merupakan terjemahan langkah demi langkah
tutorial Node.js untuk pemula. Yaitu, dalam hal ini, "pemula" adalah seseorang yang memiliki pengetahuan tentang JavaScript browser. Dia mendengar bahwa ada platform server, program yang juga ditulis dalam JS, dan ingin menguasai platform ini. Mungkin Anda akan menemukan di sini sesuatu yang berguna untuk diri Anda sendiri bahkan jika Anda sudah terbiasa dengan Node.js.
Omong-omong, tahun lalu kami memiliki
proyek serupa dalam hal skrip bash. Kemudian, setelah menerbitkan semua materi yang direncanakan, kami mengumpulkannya dalam bentuk
file PDF . Rencananya juga akan dilakukan kali ini.

Hari ini kita akan membahas fitur Node.js, mulai berkenalan dengan ekosistem platform ini dan menulis sisi server "Hello World".
[Kami menyarankan Anda untuk membaca] Bagian lain dari siklus iniBagian 1:
Informasi Umum dan MemulaiBagian 2:
JavaScript, V8, beberapa trik pengembanganBagian 3:
Hosting, REPL, bekerja dengan konsol, modulBagian 4:
npm, package.json dan file package-lock.jsonBagian 5:
npm dan npxBagian 6:
loop acara, tumpukan panggilan, timerBagian 7:
Pemrograman AsinkronBagian 8:
Panduan Node.js, Bagian 8: HTTP dan Protokol WebSocketBagian 9:
Panduan Node.js, bagian 9: bekerja dengan sistem fileBagian 10:
Panduan Node.js, Bagian 10: Modul Standar, Streaming, Database, NODE_ENVPDF lengkap dari Node.js Guide Ulasan dari Node.js
Node.js adalah runtime JavaScript lintas-platform open source yang berjalan di server. Sejak dirilisnya platform ini pada tahun 2009, platform ini menjadi sangat populer dan saat ini memainkan peran yang sangat penting di bidang pengembangan web. Jika Anda menganggap jumlah bintang yang dikumpulkan oleh proyek tertentu di GitHub sebagai indikator popularitas, maka
Node.js , yang memiliki lebih dari 50.000 bintang, adalah proyek yang sangat, sangat populer.
Platform Node.js didasarkan pada mesin JavaScript V8 dari Google, yang digunakan di browser Google Chrome. Platform ini terutama digunakan untuk membuat server web, tetapi cakupannya tidak terbatas pada ini.
Pertimbangkan fitur utama Node.js.
▍ Kecepatan
Salah satu fitur menarik utama Node.js adalah kecepatan. Kode JavaScript yang berjalan di Node.js dapat dua kali lebih cepat dari kode yang ditulis dalam bahasa yang dikompilasi seperti C atau Java, dan urutan besarnya lebih cepat daripada bahasa yang ditafsirkan seperti Python atau Ruby. Alasan untuk ini adalah arsitektur non-blocking platform, dan hasil spesifik tergantung pada tes kinerja yang digunakan, tetapi, secara umum, Node.js adalah platform yang sangat cepat.
Kesederhanaan
Platform Node.js mudah dipelajari dan digunakan. Faktanya, ini sangat sederhana, terutama terlihat dibandingkan dengan beberapa platform server lainnya.
▍JavaScript
Node.js menjalankan kode yang ditulis dalam JavaScript. Ini berarti bahwa jutaan pengembang front-end yang sudah menggunakan JavaScript di browser mereka dapat menulis kode server dan klien dalam bahasa pemrograman yang sama tanpa harus mempelajari alat yang sama sekali baru untuk pindah ke pengembangan server.
Browser dan server menggunakan konsep bahasa yang sama. Selain itu, di Node.js, Anda dapat dengan cepat beralih ke penggunaan standar ECMAScript baru karena diterapkan pada platform. Untuk melakukan ini, Anda tidak perlu menunggu sampai pengguna memperbarui browser mereka, karena Node.js adalah lingkungan server yang sepenuhnya dikontrol pengembang. Akibatnya, fitur bahasa baru tersedia ketika Anda menginstal versi Node.js. yang mendukung
Mesin ▍V8
Di jantung Node.js, di antara solusi lainnya, adalah mesin JavaScript open-source Google V8, yang digunakan di browser Google Chrome dan browser lainnya. Ini berarti bahwa Node.js menggunakan prestasi ribuan insinyur yang telah membuat runtime JavaScript JavaScript sangat cepat dan terus bekerja untuk meningkatkan V8.
▍Sinkronkan
Dalam bahasa pemrograman tradisional (C, Java, Python, PHP), semua instruksi secara default diblokir kecuali pengembang secara eksplisit menangani eksekusi kode yang tidak sinkron. Akibatnya, jika, misalnya, dalam lingkungan seperti itu, permintaan jaringan dibuat untuk memuat beberapa kode JSON, pelaksanaan aliran dari mana permintaan itu dibuat akan ditangguhkan sampai penerimaan dan pemrosesan tanggapan selesai.
JavaScript sangat menyederhanakan penulisan kode asinkron dan non-pemblokiran menggunakan utas tunggal, fungsi panggil balik (callback), dan pendekatan pengembangan yang digerakkan oleh peristiwa. Setiap kali kita perlu melakukan operasi yang berat, kita meneruskan mekanisme panggilan balik yang sesuai, yang akan dipanggil segera setelah operasi selesai. Akibatnya, agar program dapat terus bekerja, tidak perlu menunggu hasil operasi tersebut.
Mekanisme serupa muncul di browser. Kami tidak dapat menunggu, katakanlah, untuk menyelesaikan permintaan AJAX, tanpa dapat menanggapi tindakan pengguna, misalnya, klik tombol. Agar nyaman bagi pengguna untuk bekerja dengan halaman web, semuanya, dan mengunduh data dari jaringan, dan memproses klik pada tombol, harus terjadi secara bersamaan, dalam waktu nyata.
Jika Anda pernah membuat event handler klik tombol, maka Anda sudah menggunakan teknik pemrograman asinkron.
Mekanisme asinkron memungkinkan server Node.js tunggal untuk secara bersamaan memproses ribuan koneksi, tanpa memuat programmer dengan tugas-tugas untuk mengelola aliran dan mengatur eksekusi kode paralel. Hal-hal seperti ini sering menjadi sumber kesalahan.
Node.js menyediakan pengembang dengan mekanisme input-output dasar yang tidak menghalangi, dan, secara umum, perpustakaan yang digunakan dalam kerangka kerja Node.js ditulis menggunakan paradigma non-blocking. Ini membuat perilaku kode pemblokiran menjadi pengecualian dan bukan norma.
Ketika Node.js perlu melakukan operasi I / O, seperti mengunduh data dari jaringan, mengakses database atau sistem file, alih-alih memblokir utas menunggu hasil operasi seperti itu, Node.js memulai eksekusi dan terus melakukan hal-hal lain hingga hingga hasil operasi ini diterima.
▍Perpustakaan
Berkat kesederhanaan dan kemudahan bekerja dengan manajer paket untuk Node.js yang disebut
npm , ekosistem Node.js berkembang. Sekarang di
registri npm ada lebih dari setengah juta paket open source yang dapat digunakan oleh pengembang Node.js secara bebas.
Setelah memeriksa beberapa fitur utama platform Node.js, kami akan mengujinya dalam tindakan. Mari kita mulai dengan instalasi.
Instal Node.js
Node.js dapat diinstal dengan berbagai cara, yang sekarang akan kita pertimbangkan.
Jadi, paket instalasi resmi untuk semua platform utama dapat ditemukan di
sini .
Ada cara lain yang sangat mudah untuk menginstal Node.js, yaitu dengan menggunakan manajer paket yang tersedia di sistem operasi. Sebagai contoh, manajer paket macOS, yang merupakan standar de facto di bidang ini, disebut
Homebrew . Jika ada di sistem Anda, Anda dapat menginstal Node.js dengan menjalankan perintah ini di baris perintah:
brew install node
Daftar manajer paket untuk sistem operasi lain, termasuk Linux dan Windows, dapat ditemukan di
sini .
Pengelola versi populer untuk Node.js adalah
nvm . Alat ini memungkinkan Anda untuk dengan mudah beralih di antara berbagai versi Node.js, dengan itu Anda dapat, misalnya, menginstal dan mencoba versi Node.js yang baru, dan kemudian, jika perlu, kembali ke versi lama. Nvm juga berguna dalam situasi di mana Anda perlu mencoba beberapa kode pada versi lama Node.js.
Saya akan menyarankan pemula untuk menggunakan installer Node.js resmi. Untuk pengguna macOS, saya akan merekomendasikan menginstal Node.js menggunakan Homebrew. Sekarang Anda telah menginstal Node.js, sekarang saatnya untuk menulis "Hello World".
Aplikasi Node.js pertama
Contoh paling umum dari aplikasi pertama untuk Node.js adalah server web sederhana. Ini kodenya:
const http = require('http') const hostname = '127.0.0.1' const port = 3000 const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader('Content-Type', 'text/plain') res.end('Hello World\n') }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`) })
Untuk menjalankan kode ini, simpan di file
server.js
dan jalankan perintah berikut di terminal:
node server.js
Untuk memeriksa server, buka beberapa browser dan masukkan http:
http://127.0.0.1:3000
di bilah alamat, yaitu alamat server yang akan ditampilkan di konsol setelah berhasil diluncurkan. Jika semuanya berjalan sebagaimana mestinya, "Hello World" akan ditampilkan pada halaman.
Mari kita lihat contoh ini.
Pertama, perhatikan bahwa kode tersebut berisi perintah menghubungkan modul
http .
Platform Node.js adalah pemilik
set modul standar yang luar biasa, yang mencakup mekanisme yang dikembangkan dengan baik untuk bekerja dengan jaringan.
Metode
createServer()
dari objek
http
membuat server HTTP baru dan mengembalikannya.
Server dikonfigurasikan untuk mendengarkan pada port tertentu pada host yang diberikan. Ketika server siap, panggilan balik yang sesuai dipanggil, memberi tahu kami bahwa server berfungsi.
Ketika server menerima permintaan, acara
request
dinaikkan, yang menyediakan dua objek. Yang pertama adalah permintaan (
req
, objek
http.IncomingMessage ), yang kedua adalah respons (
res
, objek
http.ServerResponse ). Mereka adalah mekanisme pemrosesan permintaan HTTP yang paling penting.
Yang pertama memberikan informasi tentang permintaan yang kami miliki. Dalam contoh sederhana kami, kami tidak menggunakan data ini, tetapi, jika perlu, menggunakan objek
req
, Anda dapat mengakses header permintaan dan data yang dikirimkan di dalamnya.
Yang kedua diperlukan untuk membentuk dan mengirim respons terhadap permintaan.
Dalam hal ini, kami membentuk respons terhadap permintaan sebagai berikut. Pertama, atur properti
statusCode
ke
200
, yang menunjukkan operasi yang berhasil:
res.statusCode = 200
Selanjutnya, kami mengatur header
Content-Type
:
res.setHeader('Content-Type', 'text/plain')
Setelah itu, kami menyelesaikan persiapan respons dengan menambahkan kontennya sebagai argumen ke metode
end()
:
res.end('Hello World\n')
Kami telah mengatakan bahwa ekosistem yang kuat telah terbentuk di sekitar platform Node.js. Kami sekarang akan membahas beberapa kerangka kerja populer dan alat bantu untuk Node.js.
Kerangka kerja dan alat bantu untuk Node.js
Node.js adalah platform tingkat rendah. Untuk menyederhanakan pengembangan untuk itu dan membuat hidup lebih mudah bagi programmer, sejumlah besar perpustakaan dibuat. Beberapa dari mereka telah menjadi sangat populer dari waktu ke waktu. Berikut adalah daftar pendek perpustakaan yang menurut saya dibuat dengan sangat baik dan layak untuk dipelajari:
- Ekspres Pustaka ini memberi pengembang alat yang sangat sederhana namun kuat untuk membuat server web. Kunci keberhasilan Express adalah pendekatan minimalis dan fokus pada mekanisme server dasar tanpa mencoba memaksakan visi tertentu tentang arsitektur server "satu-satunya yang tepat".
- Meteor Ini adalah kerangka kerja tumpukan penuh yang kuat yang mengimplementasikan pendekatan isomorfik untuk mengembangkan aplikasi JavaScript dan menggunakan kode pada klien dan server. Setelah Meteor adalah alat independen yang mencakup semua yang mungkin dibutuhkan pengembang. Sekarang ini juga terintegrasi dengan perpustakaan front-end seperti React , Vue dan Angular . Meteor, selain mengembangkan aplikasi web konvensional, juga dapat digunakan dalam pengembangan ponsel.
- Koa Kerangka kerja web ini dibuat oleh tim yang sama yang sedang mengerjakan Express. Selama pengembangannya, yang didasarkan pada pengalaman bertahun-tahun bekerja pada Express, perhatian diberikan pada kesederhanaan solusi dan kekompakannya. Proyek ini muncul sebagai solusi untuk masalah membuat perubahan serius pada Express yang tidak sesuai dengan mekanisme kerangka kerja lain yang dapat memecah komunitas.
- Next.js. Kerangka kerja ini dirancang untuk mengatur rendering sisi server dari aplikasi Bereaksi .
- Mikro . Ini adalah pustaka yang sangat ringkas untuk membuat layanan HTTP asinkron.
- Socket.io . Ini adalah perpustakaan untuk mengembangkan aplikasi jaringan real-time.
Bahkan, di ekosistem Node.js, Anda dapat menemukan perpustakaan bantu untuk menyelesaikan hampir semua tugas. Seperti yang Anda tahu, dibutuhkan banyak waktu untuk membangun ekosistem seperti itu. Platform Node.js muncul pada tahun 2009. Selama keberadaannya, banyak yang telah terjadi yang perlu diketahui oleh seorang programmer yang ingin mempelajari platform ini.
Sejarah Singkat Node.js
Node.js berusia 9 tahun tahun ini. Ini, tentu saja, tidak terlalu banyak, jika kita membandingkan usia ini dengan usia JavaScript, yang sudah berusia 23 tahun, atau dengan usia web 25 tahun, yang ada dalam bentuk yang kita kenal, jika Anda menghitung dari tampilan browser Mosaic.
9 tahun adalah periode singkat untuk teknologi, tetapi sekarang tampaknya platform Node.js selalu ada.
Saya mulai bekerja dengan Node.js dari versi awal platform ketika dia baru berusia 2 tahun. Meskipun begitu, meskipun fakta bahwa tidak ada begitu banyak informasi tentang Node.js, orang sudah dapat merasakan bahwa Node.js sangat serius.
Sekarang mari kita bicara tentang teknologi yang mendasari Node.js dan secara singkat mempertimbangkan peristiwa utama yang terkait dengan platform ini.
Jadi, JavaScript adalah bahasa pemrograman yang dibuat di Netscape sebagai bahasa scripting yang dirancang untuk mengelola halaman web di browser
Netscape Navigator .
Bagian dari bisnis Netscape adalah menjual server web, yang mencakup lingkungan yang disebut Netscape LiveWire. Itu memungkinkan Anda untuk membuat halaman web dinamis menggunakan JavaScript sisi-server. Seperti yang Anda lihat, gagasan menggunakan JS untuk pengembangan server jauh lebih tua daripada Node.js. Gagasan ini hampir setua JavaScript itu sendiri, tetapi JS sisi server tidak mendapatkan popularitas pada saat-saat yang dipermasalahkan.
Salah satu faktor utama yang menyebabkan platform Node.js menjadi begitu luas dan populer adalah saat kemunculannya. Jadi, beberapa tahun sebelum ini, JavaScript mulai dianggap sebagai bahasa yang serius. Ini terjadi berkat aplikasi Web 2.0, seperti Google Maps atau Gmail, yang menunjukkan kepada dunia kemampuan teknologi web modern.
Berkat perang browser yang kompetitif, yang berlanjut hingga hari ini, kinerja mesin JavaScript telah meningkat secara serius. Tim pengembang di belakang browser utama bekerja setiap hari untuk meningkatkan kinerja solusi mereka, yang memiliki efek menguntungkan pada JavaScript secara umum. Salah satu mesin ini adalah V8 yang sudah disebutkan, digunakan di browser Chrome dan digunakan di Node.js. Ini adalah salah satu hasil dari keinginan pengembang browser untuk kode JS berkinerja tinggi.
Tentu saja, popularitas Node.js tidak hanya didasarkan pada kombinasi keadaan yang sukses dan pada kenyataan bahwa platform ini muncul pada waktu yang tepat. Dia memperkenalkan dunia pada pendekatan inovatif untuk pengembangan sisi server dalam JavaScript. Pertimbangkan tonggak sejarah dalam Node.js.
▍2009
- Munculnya Node.js
- Buat opsi npm pertama.
▍2010
▍2011
- Keluar npm 1.0.
- Perusahaan besar seperti LinkedIn dan Uber sudah mulai menggunakan Node.js.
▍2012
- Meningkatnya popularitas Node.js.
▍2013
- Munculnya Ghost , platform penerbitan besar pertama yang menggunakan Node.js.
- Koa Release.
▍2014
- Peristiwa dramatis terjadi tahun ini. Proyek IO.js muncul , yang merupakan cabang dari Node.js, yang tujuannya adalah, antara lain, untuk memperkenalkan dukungan ES6 dan mempercepat pengembangan platform.
▍2015
- Yayasan Yayasan Node.js.
- Gabungkan IO.js dan Node.js.
- Di npm ada peluang untuk bekerja dengan modul pribadi.
- Output Node.js 4 (perlu dicatat bahwa platform ini tidak memiliki versi 1, 2 dan 3).
▍2016
- Insiden dengan paket pad kiri .
- Penampilan Benang .
- Keluar dari Node.js 6.
▍2017
- Npm mulai lebih fokus pada keamanan.
- Output Node.js 8
- Munculnya dukungan HTTP / 2 .
- V8 secara resmi diakui sebagai mesin JS yang dirancang tidak hanya untuk Chrome, tetapi juga untuk Node.
- 3 miliar unduhan dari npm dilakukan setiap minggu.
▍2018
- Keluar dari Node.js 10.
- Dukungan untuk modul ES .
- Dukungan eksperimental untuk mjs .
Ringkasan
Hari ini Anda berkenalan dengan platform Node.js, menemukan instalasinya, menulis dan menguji aplikasi sederhana pertama. Lain kali kita akan berbicara tentang seberapa banyak pengetahuan JavaScript yang Anda butuhkan untuk berhasil mengembangkan untuk Node.js, bagaimana browser dan kode JS sisi-server berbeda, dan membahas beberapa trik pengembangan Node.js.
Pembaca yang budiman! Katakan, apakah Anda memulai Hello World untuk Node.js?
Bagian manual berikut ini:
Bagian 1:
Informasi Umum dan MemulaiBagian 2:
JavaScript, V8, beberapa trik pengembanganBagian 3:
Hosting, REPL, bekerja dengan konsol, modulBagian 4:
npm, package.json dan file package-lock.jsonBagian 5:
npm dan npxBagian 6:
loop acara, tumpukan panggilan, timerBagian 7:
Pemrograman Asinkron