Selamat siang teman!
Saya hadir Anda terjemahan ini di Node.js panduan .
Bagian lain:
Bagian 1
Bagian 2
Bagian 3
Bagian 4
Pengantar Node.js
Node.js adalah runtime JavaScript yang terbuka dan lintas-platform. Ini adalah solusi hebat untuk hampir semua proyek.
Node.js menjalankan mesin JavaScript V8, inti dari Google Chrome, di luar browser. Ini membuat Node.js sangat performant.
Aplikasi Node.js dijalankan sebagai satu proses tunggal, tanpa membuat utas baru untuk setiap permintaan. Node.js menyediakan serangkaian primitif I / O asinkron di pustaka standar yang melindungi JavaScript dari pemblokiran, dan biasanya pustaka di Node.js ditulis menggunakan paradigma non-pemblokiran, menjadikan perilaku pemblokiran sebagai pengecualian daripada aturan.
Ketika Node.js melakukan operasi I / O, seperti membaca (data) dari jaringan, mengakses database atau sistem file, alih-alih memblokir aliran dan menunggu siklus CPU selesai, Node.js akan terus melakukan operasi setelah menerima respons.
Ini memungkinkan Node.js untuk menangani ribuan permintaan secara bersamaan melalui satu server tanpa perlu sistem konsistensi aliran yang dapat menjadi sumber bug serius.
Keuntungan Node.js yang signifikan adalah bahwa jutaan pengembang yang menulis kode JavaScript untuk peramban sekarang memiliki kemampuan untuk menulis kode sisi server selain kode klien tanpa harus mempelajari bahasa (pemrograman) yang sama sekali berbeda.
Di Node.js, standar ECMAScript baru dapat digunakan dengan mulus, Anda tidak perlu menunggu semua pengguna memperbarui peramban mereka - Anda memutuskan versi ECMAScript untuk digunakan dengan mengubah versi Node.js, Anda juga dapat menambahkan fitur eksperimental dengan menjalankan Node.js dengan bendera (sesuai).
Sejumlah besar perpustakaan
Dengan strukturnya yang sederhana, npm mendorong pertumbuhan cepat ekosistem Node.js, dengan lebih dari 1.000.000 paket sumber terbuka saat ini terdaftar dengan npm yang dapat Anda gunakan secara gratis.
Contoh aplikasi Node.js
Kasing penggunaan yang paling umum untuk Node.js adalah membuat server web:
const http = require('http')
const hostname = '127.0.0.1'
const port = process.env.PORT
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}/`)
})
Pertama-tama, kami menyertakan modul http .
Node.js memiliki pustaka standar yang fantastis yang mencakup dukungan jaringan terkemuka.
Metode ini
createServer()
http
menciptakan server HTTP baru dan mengembalikannya.
Server diatur untuk mendengarkan pada port dan host tertentu. Ketika server siap, fungsi panggilan balik dipicu, dalam hal ini, menunjukkan bahwa server sedang berjalan.
Ketika permintaan baru diterima, acara permintaan dipecat yang berisi dua objek: permintaan (objek http.IncomingMessage (pesan masuk)) dan respons (objek http.ServerResponse (respons server)).
Objek-objek ini diperlukan untuk memproses panggilan HTTP.
Objek pertama berisi detail permintaan. Itu tidak digunakan dalam contoh kami, tetapi Anda dapat mengakses header permintaan dan datanya.
Objek kedua digunakan untuk memberikan data kepada pemohon.
Dalam hal ini, melalui
res.statusCode = 200
kami menetapkan properti statusCode ke 200 sebagai indikator keberhasilan penyelesaian permintaan.
Kami mengatur header Tipe-Konten (konten atau tipe konten)
res.setHeader('Content-Type', 'text/plain')
dan tutup respons dengan menambahkan konten sebagai argumen ke
end()
:
res.end('Hello World\n')
Kerangka kerja dan alat Node.js
Node.js adalah platform tingkat rendah. Ribuan perpustakaan berbeda telah dibuat untuk memenuhi kebutuhan pengembang.
Seiring waktu, banyak dari mereka menjadi sangat populer. Berikut adalah daftar beberapa di antaranya:
- AdonisJs: - , . Adonis — - Node.js.
- Express: -. , , .
- Fastify: -, . Fastify -.
- hapi: , .
- koa: Express . - , Express.
- Loopback.io: .
- Meteor: -, JavaScript, . - meteor , , React, Vue Angular. .
- Micro: HTTP-.
- NestJS: TypeScript Node.js- , .
- Next.js: React- .
- Nx: NestJS, Express, React, Angular .. Nx , .
- Socket.io: .
Node.js
Percaya atau tidak, Node.js baru berusia 10 tahun.
Sebagai perbandingan: JavaScript telah ada selama 24 tahun, dan web telah ada selama 30 tahun.
10 tahun adalah periode singkat untuk teknologi, tetapi kadang-kadang tampaknya Node.js selalu ada di sana.
Saya bertemu Node.js ketika hanya 2 tahun telah berlalu sejak kemunculannya, tetapi meskipun begitu, meskipun dengan informasi yang terbatas, ia merasa bahwa ia memiliki masa depan yang hebat.
Di bagian ini, kita akan melihat gambaran besar sejarah Node.js.
Sedikit sejarah
JavaScript adalah bahasa pemrograman yang diciptakan oleh Netscape sebagai alat skrip untuk memanipulasi halaman web di browser Netscape Navigator .
Bagian dari model bisnis Netscape telah menjual server web yang menyertakan kerangka kerja Netscape LiveWire, yang dapat membuat halaman dinamis menggunakan JavaScript sisi-server. Sayangnya, Netscape LiveWire gagal dan JavaScript sisi server tidak populer hingga Node.js.
Salah satu faktor kunci dalam popularitas Node.js adalah waktu (dari penampilannya). JavaScript telah dikenal sebagai bahasa (pemrograman) yang serius beberapa tahun sebelumnya berkat aplikasi "Web 2.0" (seperti Flickr, Gmail, dan lainnya) yang menunjukkan kepada dunia seperti apa rupa web modern.
Mesin JavaScript juga menjadi lebih baik secara signifikan karena peramban berusaha meningkatkan kinerja untuk kepentingan pengguna. Tim pengembang browser utama telah bekerja keras untuk membuat JavaScript lebih baik mendukung dan mengeksekusi secepat mungkin. Mesin yang digunakan Node.js, V8 (juga dikenal sebagai Chrome V8 - mesin JavaScript sumber terbuka dari proyek Chromium) muncul sebagai pemenang dari kompetisi ini.
Node.js muncul di waktu dan tempat yang tepat. Untungnya, ini bukan satu-satunya alasan popularitasnya. Proyek ini berisi sejumlah besar ide dan pendekatan inovatif untuk pengembangan JavaScript sisi-server, yang disukai banyak pengembang.
2009
- Node.js muncul
- Npm muncul
2010
- Mengekspresikan
- Socket.io
2011
- npm versi 1.0
- Node.js: LinkedIn, Uber .
- hapi
2012
- Node.js
2013
- - Node.js: Ghost
- Koa
2014
- : Node.js io.js ( — git) ES6
2015
- Node.js Foundation
- IO.js Node.js ( — git)
- npm ()
- Node.js 4 ( 1, 2 3 )
2016
2017
- npm
- Node.js 8
- HTTP/2
- V8 Node.js , Node.js JS Chrome
- 3 npm
2018
- Node.js 10
- Dukungan eksperimental untuk modul ES dengan ekstensi .mjs
Bagaimana cara menginstal Node.js?
Node.js dapat diinstal dengan berbagai cara.
Distribusi untuk platform utama tersedia di situs web resmi .
Cara yang sangat mudah untuk menginstal Node.js adalah dengan menggunakan manajer paket. Setiap sistem operasi memiliki sendiri.
Di macOS, ini adalah Homebrew , yang membuatnya mudah untuk menginstal Node.js menggunakan baris perintah:
brew install node
Daftar manajer paket untuk Linux, Windows dan sistem lainnya ada di sini .
nvm
Apakah cara populer untuk menjalankan Node.js. Ini memungkinkan Anda untuk dengan mudah beralih di antara versi Node.js, menginstal versi baru untuk pengujian dan membatalkan instalasi mereka jika terjadi kesalahan.
Ini juga sangat berguna ketika menguji kode dalam versi Node.js.
Untuk lebih jelasnya
nvm
ikuti tautan ini .
Saran saya adalah menggunakan penginstal resmi jika Anda baru mulai mengembangkan dan belum pernah menggunakan Homebrew sebelumnya.
Setelah menginstal Node.js, Anda mendapatkan akses ke program yang dapat dieksekusi
node
pada baris perintah.
Seberapa baik Anda perlu tahu JavaScript untuk bekerja dengan Node.js?
Sebagai pemula, sulit untuk menentukan tingkat pemrograman Anda.
Juga sulit untuk menentukan di mana JavaScript berakhir dan Node.js dimulai, dan sebaliknya.
Secara pribadi, saya akan menyarankan pemahaman yang baik tentang konsep-konsep dasar JavaScript berikut sebelum menyelam ke Node.js:
- Sintaks atau struktur leksikal
- Ekspresi (pada dasarnya sintaksis yang sama)
- Tipe data)
- Variabel
- Fungsi
- Kata kunci ini
- Fungsi panah
- Siklus
- Area visibilitas
- Array
- Templat atau string literal
- Titik koma (mungkin saat itu wajib untuk menggunakannya, misalnya, ketika bekerja dengan IIFE)
- Rezim yang ketat
- ECMAScript 6, 2016, 2017
Menguasai konsep-konsep ini adalah awal dari jalur pengembang penuh-tumpukan profesional.
Konsep-konsep berikut juga merupakan kunci untuk memahami pemrograman asinkron, yang merupakan bagian mendasar dari Node.js:
- Pemrograman asinkron dan callback (panggilan balik)
- Pengatur waktu
- Janji (janji)
- Async / tunggu
- Penutupan
- Perulangan acara (tumpukan panggilan)
Perbedaan antara Node.js dan browser
JavaScript dapat digunakan di browser dan Node.js.
Namun, membuat aplikasi browser sangat berbeda dari membuat aplikasi Node.js.
Sementara JavaScript digunakan dalam kedua kasus, ada beberapa perbedaan spesifik pengembangan kunci.
Dari sudut pandang frontend JavaScript (pengembang front-end - sisi klien dari suatu aplikasi), pengembangan aplikasi di Node.js memiliki keunggulan yang signifikan, dinyatakan dalam kenyataan bahwa di mana-mana, baik pada klien dan di server, bahasa pemrograman yang sama digunakan - JavaScript.
Ini adalah peluang besar untuk menjadi setumpuk penuh: kita semua tahu betapa sulitnya untuk sepenuhnya, mempelajari bahasa pemrograman baru, dan dalam hal ini, tidak ada kebutuhan seperti itu.
Satu-satunya hal yang perlu dipelajari adalah ekosistem.
Di browser, sebagian besar waktu kita harus berurusan dengan DOM dan API web lainnya, seperti cookie. Tentu saja mereka tidak ada di Node.js. Node.js tidak memiliki jendela, dokumen, dan objek khusus browser lainnya.
Di sisi lain, browser tidak memiliki API hebat yang Node.js paparkan melalui modul, seperti akses sistem file.
Perbedaan besar lainnya adalah bahwa di Node.js, Anda mengontrol lingkungan eksekusi kode. Kecuali Anda mengembangkan aplikasi sumber terbuka yang dapat digunakan siapa pun di mana pun, Anda tahu versi Node.js mana yang digunakan untuk menjalankan aplikasi. Ini sangat nyaman berbeda dengan runtime browser, karena pengguna dapat memutuskan browser mana yang akan digunakan.
Ini berarti Anda dapat menulis kode dalam JavaScript yang didukung oleh versi Node.js.
Karena JavaScript berkembang sangat dinamis, peramban tidak selalu punya waktu untuk mengimplementasikan fitur bahasa baru dengan cepat, dan pengguna tidak selalu memperbarui secara tepat waktu, jadi Anda sering harus menjaga JavaScript lama di web.
Untuk mengubah kode ke ES5, Anda dapat menggunakan Babel; di Node.js, ini tidak perlu.
Perbedaan lainnya adalah Node.js menggunakan sistem modular CommonJS, dan browser mendukung ES-modul.
Dalam praktiknya, ini berarti bahwa di Node.js kami gunakan
require()
, dan di browser import
.
Terima kasih atas perhatiannya, teman-teman. Jika Anda menemukan kesalahan dan kesalahan ketik jangan ragu untuk menulis di PM, saya akan berterima kasih.
Bersambung…