Node.JS

Node.js adalah runtime JavaScript lintas platform sumber terbuka yang berjalan di server. Sejak dirilis pada tahun 2009, platform ini telah menjadi sangat populer dan memainkan peran yang sangat penting di bidang pengembangan web saat ini.
Untuk artikel selengkapnya di Node.JS ...

Tampilkan Filter
Filter Hosting
A2 Themes & Host Me Filter

Sistem operasi

Ruang Disk

Memori RAM

Jenis Disk

Inti CPU

Menyortir

Percayai Percontohan Dream Host
Skor - 9.7
Dream Host Logo
Dream Host

Dream Host

DreamObjects 40 GB
$0.95 /Bulanan

Ulasan 3778

29 Kupon

Lokasi Server


Dream Host Servers in AshburnAmerika Serikat
Membandingkan
Percayai Percontohan ICDSoft
Skor - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Bulanan

Ulasan 233


Lokasi Server


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in BostonAmerika Serikat ICDSoft Servers in Hong KongHongkong
Membandingkan
Percayai Percontohan ICDSoft
Skor - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Bulanan

Ulasan 233


Lokasi Server


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in BostonAmerika Serikat ICDSoft Servers in Hong KongHongkong
Membandingkan
Skor - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Bulanan

50 Kupon

Lokasi Server


A2hosting Servers in AmsterdamBelanda A2hosting Servers in MichiganAmerika Serikat A2hosting Servers in SingaporeSingapura
Membandingkan
Percayai Percontohan Keliweb
Skor - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Bulanan

Ulasan 453


Lokasi Server


Keliweb Servers in MilanoItalia
Membandingkan
Percayai Percontohan JustHostMe
Skor - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Bulanan

Ulasan 72


Lokasi Server


JustHostMe Servers in United KingdomBritania Raya
Membandingkan
Percayai Percontohan Dream VPS
Skor - 8.6
Dream VPS Logo
Dream VPS

VPS impian

STARTER
$3.75 /Bulanan

Ulasan 7


Lokasi Server


Dream VPS Servers in Hong KongHongkong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkAmerika Serikat Dream VPS Servers in LondonBritania Raya Dream VPS Servers in AmsterdamBelanda Dream VPS Servers in FrankfurtJerman Dream VPS Servers in IsraelIsrael
Membandingkan
Percayai Percontohan Reseller Cube
Skor - 8
Reseller Cube Logo
Reseller Cube

Kubus Reseller

Basic USA
$5 /Bulanan

Ulasan 4


Lokasi Server


Reseller Cube Servers in RaleighAmerika Serikat
Membandingkan
Percayai Percontohan Univa Host
Skor - 8
Univa Host Logo
Univa Host

Host Univa

E-ECONOMY
$2.99 /Bulanan

Ulasan 3


Lokasi Server


Univa Host Servers in GermanyJerman Univa Host Servers in United StatesAmerika Serikat
Membandingkan
Percayai Percontohan OperaVPS
Skor - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Bulanan

Ulasan 3


Lokasi Server


OperaVPS Servers in United KingdomBritania Raya OperaVPS Servers in AustriaAustria OperaVPS Servers in CanadaKanada OperaVPS Servers in DenmarkDenmark OperaVPS Servers in FrancePerancis OperaVPS Servers in GermanyJerman OperaVPS Servers in ItalyItalia OperaVPS Servers in NetherlandsBelanda OperaVPS Servers in RomaniaRumania OperaVPS Servers in United StatesAmerika Serikat
Membandingkan
Percayai Percontohan L3Web Hosting
Skor - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web Hosting

START UP
$1.99 /Bulanan

Ulasan 2


Lokasi Server


L3Web Hosting Servers in IndiaIndia L3Web Hosting Servers in MunichJerman L3Web Hosting Servers in MiamiAmerika Serikat L3Web Hosting Servers in SingaporeSingapura L3Web Hosting Servers in United KingdomBritania Raya
Membandingkan
Percayai Percontohan Idea Stack
Skor - 7.4
Idea Stack Logo
Idea Stack

Idea Stack

LEVEL 1
$2 /Bulanan

Ulasan 2


Lokasi Server


Idea Stack Servers in SeattleAmerika Serikat
Membandingkan
Percayai Percontohan Epic Host
Skor - 7.4
Epic Host Logo
Epic Host

Pembawa Acara Epik

Cloud hosting
$2.37 /Bulanan

Ulasan 1


Lokasi Server


Epic Host Servers in New DelhiIndia Epic Host Servers in UnionAmerika Serikat
Membandingkan
Percayai Percontohan itanets.co.uk
Skor - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Bulanan

Ulasan 2

Membandingkan
Percayai Percontohan Digital Ocean
Skor - 3.8
Digital Ocean Logo
Digital Ocean

Samudera Digital

$5 /mo
$5 /Bulanan

Ulasan 214

38 Kupon

Lokasi Server


Digital Ocean Servers in IndiaIndia Digital Ocean Servers in New YorkAmerika Serikat Digital Ocean Servers in AmsterdamBelanda Digital Ocean Servers in LondonBritania Raya Digital Ocean Servers in TorontoKanada Digital Ocean Servers in Frankfurt am MainJerman Digital Ocean Servers in SingaporeSingapura
Membandingkan
Skor - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Tahunan


Lokasi Server


HOST PRO KE Servers in GermanyJerman
Membandingkan
Skor - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Bulanan

19 Kupon

Lokasi Server


Accu WebHosting Servers in FrancePerancis Accu WebHosting Servers in DenverAmerika Serikat Accu WebHosting Servers in MumbaiIndia Accu WebHosting Servers in AmsterdamBelanda Accu WebHosting Servers in Frankfurt am MainJerman Accu WebHosting Servers in SydneyAustralia Accu WebHosting Servers in LondonBritania Raya Accu WebHosting Servers in PolandPolandia Accu WebHosting Servers in CanadaKanada Accu WebHosting Servers in SingaporeSingapura
Membandingkan
Skor - 9
Be hostings Logo
Be hostings

Menjadi tuan rumah

StarterSSL
$3.36 /Bulanan


Lokasi Server


Be hostings Servers in BrusselsBelgium
Membandingkan
Skor - 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Bulanan


Lokasi Server


Gear Host Servers in DenverAmerika Serikat
Membandingkan
Skor - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Bulanan


Lokasi Server


Mikro VPS Servers in BudapestHungaria
Membandingkan
Skor - 0
Simple Node Logo
Simple Node

Simpul Sederhana

OpenVZ - 256MB
$3 /Bulanan

Membandingkan

 

Node.js

 

 

Node.js adalah runtime JavaScript lintas platform sumber terbuka yang berjalan di server. Sejak dirilis pada tahun 2009, platform ini telah menjadi sangat populer dan memainkan peran yang sangat penting di bidang pengembangan web saat ini. Jika kita menganggap jumlah bintang yang dikumpulkan sebuah proyek di GitHub sebagai indikator popularitas, maka Node.js, yang memiliki lebih dari 50.000 bintang, adalah proyek yang sangat, sangat populer.

 

Platform Node.js dibangun di atas mesin JavaScript V8 Google, yang digunakan di browser Google Chrome. Platform ini terutama digunakan untuk membuat server web, tetapi cakupannya tidak terbatas pada ini.

 

Mari kita lihat fitur utama Node.js.

 

Kecepatan

 

Salah satu daya tarik utama Node.js adalah kecepatan. Kode JavaScript yang dieksekusi di Node.js bisa dua kali lebih cepat dari kode yang ditulis dalam bahasa terkompilasi seperti C atau Java, dan lipat lebih cepat daripada bahasa yang ditafsirkan seperti Python atau Ruby. Alasannya adalah arsitektur non-pemblokiran platform, dan hasil spesifiknya bergantung pada tolok ukur yang digunakan, tetapi secara keseluruhan, Node.js adalah platform yang sangat cepat.

 

Kesederhanaan

 

Platform Node.js mudah dipelajari dan digunakan. Faktanya, ini sangat sederhana, terutama jika dibandingkan dengan beberapa platform server lainnya.

 

JavaScript

 

JavaScript dijalankan di lingkungan Node.js. Ini berarti jutaan pengembang front-end yang sudah menggunakan JavaScript di browser dapat menulis kode sisi server dan sisi klien dalam bahasa pemrograman yang sama tanpa harus mempelajari alat yang sama sekali baru untuk beralih ke pengembangan sisi server.

 

Browser dan server menggunakan konsep bahasa yang sama. Selain itu, Node.js dapat dengan cepat beralih ke standar ECMAScript baru saat diterapkan di platform.

 

Tidak perlu menunggu pengguna menyegarkan browser mereka untuk ini karena Node.js adalah lingkungan sisi server yang sepenuhnya mengendalikan pengembang. Hasilnya, fitur bahasa baru tersedia saat Anda menginstal versi pendukung Node.js.

 

Mesin V8

 

Inti dari Node.js, di antara solusi lainnya, adalah mesin JavaScript V8 sumber terbuka Google, yang digunakan di Google Chrome dan peramban lainnya. Ini berarti Node.js memanfaatkan ribuan insinyur yang membuat runtime JavaScript Chrome menjadi sangat cepat dan terus bekerja untuk meningkatkan V8.

 

Asinkron

 

Dalam bahasa pemrograman tradisional (C, Java, Python, PHP), semua instruksi diblokir secara default, kecuali pengembang secara eksplisit menangani eksekusi kode secara asinkron. Akibatnya, jika, misalnya, dalam lingkungan seperti itu, Anda membuat permintaan jaringan untuk mendownload beberapa kode JSON, eksekusi aliran tempat permintaan tersebut dibuat akan ditangguhkan hingga respons diterima dan diproses.

 

JavaScript mempermudah penulisan kode asinkron dan non-pemblokiran menggunakan utas tunggal, callback, dan pendekatan pengembangan yang digerakkan oleh peristiwa. Setiap kali kita perlu melakukan operasi yang berat, kita meneruskan callback ke mekanisme yang sesuai, yang akan dipanggil segera setelah operasi ini selesai. Akibatnya, tidak perlu menunggu hasil operasi tersebut agar program dapat terus berjalan.

 

Mekanisme serupa berasal dari browser. Kita tidak bisa menunggu, katakanlah, untuk sebuahAJAXmeminta untuk menyelesaikan tanpa dapat menanggapi tindakan pengguna, seperti klik tombol. Untuk memudahkan pengguna bekerja dengan halaman web, semuanya, baik mengunduh data dari jaringan dan memproses klik tombol, harus terjadi secara bersamaan, dalam waktu nyata.

 

Jika Anda pernah membuat pengendali peristiwa klik tombol, Anda telah menggunakan teknik pemrograman asinkron.

 

Mekanisme asinkron memungkinkan satu server Node.js untuk secara bersamaan menangani ribuan koneksi tanpa membebani programmer dengan manajemen utas dan tugas-tugas eksekusi kode paralel. Hal-hal seperti itu seringkali menjadi sumber kesalahan.

 

Node.js memberi pengembang mekanisme I / O dasar non-pemblokiran, dan secara umum, pustaka yang digunakan dalam kerangka kerja Node.js ditulis menggunakan paradigma non-pemblokiran.Hal ini membuat perilaku memblokir menjadi pengecualian daripada norma.

 

Ketika Node.js perlu melakukan operasi I / O, seperti memuat data dari jaringan, mengakses database atau sistem file, alih-alih memblokir utas utama menunggu hasil operasi seperti itu, Node.js akan memulai eksekusi dan terus melakukan hal lain hingga hasil operasi ini diterima.

 

Perpustakaan

 

Dengan kemudahan dan kenyamanan bekerja dengan pengelola paket untuk Node.js yang disebut npm, ekosistem Node.js berkembang pesat. Sekarang ada lebih dari setengah juta paket sumber terbuka di registri npm yang dapat digunakan dengan bebas oleh pengembang Node.js mana pun.

 

Setelah meninjau beberapa fitur utama dari platform Node.js, mari kita coba beraksi. Mari kita mulai dengan penginstalan.

 

 

Node.js

 

 

Menginstal Node.js

 

Node.js dapat diinstal dengan berbagai cara, yang akan kita bahas sebentar lagi. Jadi, paket instalasi resmi untuk semua platform utama dapat ditemukan.

 

Ada cara lain yang sangat mudah untuk menginstal Node.js, yaitu menggunakan manajer paket yang disediakan di sistem operasi. Misalnya, pengelola paket macOS, yang merupakan standar de facto di area ini, disebut Homebrew.

 

Jika Anda memilikinya di sistem Anda, Anda dapat menginstal Node.js dengan menjalankan perintah ini pada baris perintah:

 

buat node instal

 

Daftar manajer paket untuk sistem operasi lain, termasuk Linux dan Windows, dapat ditemukan di sini.

 

Manajer versi Node.js yang populer adalah nvm. Alat ini memungkinkan Anda untuk dengan mudah beralih di antara berbagai versi Node.js, dengan bantuannya Anda dapat, misalnya, menginstal dan mencoba versi baru Node.js, dan kemudian, jika perlu, kembali ke versi lama. Nvm juga berguna dalam situasi di mana Anda perlu menguji beberapa kode pada versi lama Node.js.

 

Untuk pemula, gunakan penginstal Node.js resmi. Untuk pengguna macOS, seseorang akan merekomendasikan menginstal Node.js menggunakan Homebrew. Sekarang Anda telah menginstal Node.js, sekarang saatnya menulis "Hello World".

 

Aplikasi Node.js Pertama

 

Contoh paling umum dari aplikasi Node.js pertama adalah server web sederhana. Ini kodenya:

const http = membutuhkan ('http')

const hostname = '127.0.0.1'

port const = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'text / plain')

res.end ('Halo Dunia \ n')

})

server.listen (porta, nama host, () = & gt; {

console.log (`Server berjalan di 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 browser dan masukkan di bilah alamat http://127.0.0.1:3000, yaitu alamat server yang akan ditampilkan di konsol setelah peluncurannya berhasil. Jika semuanya berjalan sebagaimana mestinya, halaman akan menampilkan "Hello World".

 

Mari kita lihat contoh ini.

 

Pertama, perhatikan bahwa kode tersebut berisi perintah untuk menghubungkan modul HTTP.

 

Platform Node.js memiliki seperangkat modul standar yang sangat baik, yang mencakup mekanisme yang dikembangkan dengan baik untuk bekerja dengan jaringan.

Metode objek createServer () http membuat server HTTP baru dan mengembalikannya.

 

Server dikonfigurasi untuk mendengarkan pada port tertentu pada host tertentu. Ketika server siap, callback yang sesuai dipanggil, memberi tahu kami bahwa server sedang berjalan.

Ketika server menerima permintaan, sebuah peristiwa dipicu permintaan yang menyediakan dua objek. Yang pertama adalah permintaan (req, objek http.IncomingMessage), yang kedua adalah respons (res, objek http.ServerResponse). Mereka adalah mekanisme terpenting untuk menangani permintaan HTTP.

 

Yang pertama memberi kami informasi tentang permintaan tersebut. Dalam contoh sederhana kami, kami tidak menggunakan data ini, tetapi, jika perlu, menggunakan objek, reqyou dapat mengakses header permintaan dan data yang diteruskan di dalamnya.

 

Yang kedua diperlukan untuk membentuk dan mengirim tanggapan atas permintaan.

 

Dalam hal ini, kami membentuk tanggapan atas permintaan tersebut sebagai berikut. Pertama, kami menetapkan kode status properti ke nilai 200, yang menunjukkan operasi yang berhasil:

 

res.statusCode = 200

Selanjutnya, kami menetapkan judul Jenis Konten:

res.setHeader ('Content-Type', 'text / plain')

Kami kemudian menyelesaikan persiapan respons dengan menambahkan isinya sebagai argumen ke metode end ():

res.end ('Halo Dunia \ n')

 

Kami telah menyebutkan bahwa ekosistem yang kuat telah terbentuk di sekitar platform Node.js. Sekarang mari kita bahas beberapa kerangka kerja dan alat bantu populer untuk Node.js.

 

Frameworks dan Helper Tools untuk Node.js

 

Node.js adalah platform tingkat rendah. Untuk menyederhanakan pengembangannya dan membuat hidup lebih mudah bagi programmer, sejumlah besar perpustakaan telah dibuat. Beberapa dari mereka menjadi sangat populer dari waktu ke waktu. Berikut adalah daftar kecil perpustakaan yang menurut saya sudah selesai dengan baik dan perlu dijelajahi:

 

Mengekspresikan: Pustaka ini memberi pengembang alat yang sangat sederhana namun kuat untuk membangun server web. Kunci kesuksesan Express adalah pendekatan minimalis dan fokus pada mekanisme sisi server dasar tanpa mencoba memaksakan visi arsitektur server "satu atap".

 

Meteor: Ini adalah kerangka kerja tumpukan penuh yang kuat yang mengambil pendekatan isomorfik untuk mengembangkan aplikasi JavaScript dan menggunakan kode pada klien dan server. Dulunya Meteor adalah alat mandiri yang mencakup semua yang dibutuhkan pengembang. Sekarang juga terintegrasi dengan perpustakaan frontend seperti React, Vue, dan Angular. Meteor, selain mengembangkan aplikasi web umum, juga dapat digunakan dalam pengembangan seluler.

 

Koa: Kerangka web ini dibuat oleh tim yang sama di belakang Express. Dibangun dari pengalaman bertahun-tahun dengan Express, itu dikembangkan dengan fokus pada kesederhanaan dan kekompakan. Proyek ini muncul sebagai solusi untuk masalah membuat perubahan besar pada Express yang tidak kompatibel dengan mekanisme kerangka kerja lain yang dapat memecah komunitas.

 

Next.js: Framework ini dirancang untuk mengatur rendering sisi server dari aplikasi React.

 

Mikro: Ini adalah pustaka yang sangat ringan untuk membuat layanan mikro HTTP asinkron.

Socket.io. Ini adalah perpustakaan untuk mengembangkan aplikasi jaringan waktu nyata.

 

Faktanya, di ekosistem Node.js, Anda dapat menemukan pustaka pembantu untuk hampir semua tugas. Seperti yang bisa Anda bayangkan, butuh banyak waktu untuk membangun ekosistem seperti itu. Platform Node.js muncul pada tahun 2009. Selama keberadaannya, banyak hal telah terjadi yang harus diketahui oleh seorang programmer yang ingin mempelajari platform ini.

 

Sejarah singkat Node.js

 

Node.js berusia 9 tahun tahun ini. Hal ini tentunya tidak seberapa jika anda membandingkan usia ini dengan usia JavaScript yang sudah 23 tahun, atau dengan usia web 25 tahun seperti yang kita kenal jika dihitung dari kemunculan Mosaic. browser.

 

9 tahun adalah waktu yang singkat untuk teknologi, tetapi sekarang sepertinya platform Node.js selalu ada.

 

Dengan Node.js dari versi awal platform ketika baru berusia 2 tahun. Meski begitu, meskipun tidak ada banyak informasi tentang Node.js, orang sudah bisa merasakan bahwa Node.js sangat serius.

 

Sekarang mari kita bicara tentang teknologi di balik Node.js dan lihat sekilasperkembangan utama terkait platform ini.

 

Jadi JavaScript adalah bahasa pemrograman yang dibuat di Netscape sebagai bahasa scripting untuk memanipulasi halaman web di browser Netscape Navigator.

Bagian dari bisnis Netscape adalah menjual server web, yang mencakup lingkungan yang disebut Netscape LiveWire. Ini memungkinkan Anda membuat halaman web dinamis menggunakan JavaScript sisi server.

 

Ide menggunakan JS untuk pengembangan sisi server jauh lebih tua dari Node.js. Ide ini hampir setua JavaScript itu sendiri, tetapi pada saat yang bersangkutan, JS sisi server tidak populer.

 

Salah satu faktor kunci yang membuat platform Node.js begitu luas dan populer adalah saat pertama kali muncul. Jadi, beberapa tahun sebelumnya, JavaScript mulai dianggap sebagai bahasa yang serius. Ini terjadi berkat aplikasi Web 2.0 seperti Google Maps atau Gmail, yang menunjukkan kekuatan teknologi web modern kepada dunia.

 

Berkat perang kompetitif browser, yang berlanjut hingga hari ini, performa mesin JavaScript telah meningkat secara signifikan. Tim pengembang di balik browser utama bekerja setiap hari untuk meningkatkan kinerja solusi mereka, yang memiliki efek menguntungkan pada JavaScript secara umum.

 

Salah satu mesin tersebut adalah V8 yang telah disebutkan, digunakan di browser Chrome dan digunakan di Node.js. Ini adalah salah satu hasil dari pengembang browser yang berjuang untuk kode JavaScript berkinerja tinggi.

 

Tentu saja, popularitas Node.js tidak hanya didasarkan pada kebetulan yang beruntung dan pada fakta bahwa platform tersebut lahir pada waktu yang tepat. Dia memperkenalkan dunia pada pendekatan inovatif untuk pengembangan JavaScript sisi server. Mari kita lihat pencapaian utama dalam sejarah Node.js.

 

2009


  • Munculnya Node.js

  • Membuat varian npm pertama.

 

2010

  • Munculnya Express.

  • Munculnya Socket.io.

 

2011


  • Rilis Npm 1.0.

  • Perusahaan besar seperti LinkedIn dan Uber sudah mulai menggunakan Node.js.

 

2012


  • Peningkatan pesat dalam popularitas Node.js.

 

2013


  • Munculnya Ghost, platform utama pertama untuk publikasi menggunakan Node.js.

  • Pelepasan Koa.

 

2014


  • Peristiwa dramatis telah terjadi tahun ini. Proyek IO.js muncul, yang merupakan cabang dari Node.js, yang tujuannya antara lain untuk memperkenalkan dukungan ES6 dan mempercepat pengembangan platform.

 

2015


  • Yayasan Node.js didirikan.

  • Menggabungkan IO.js dan Node.js.

  • Dalam npm, menjadi mungkin untuk bekerja dengan modul privat.

  • Yield Node.js 4 (perlu dicatat bahwa versi 1, 2, dan 3 dari platform tidak).

 

2016


  • Insiden paket pad kiri.

  • Munculnya Benang.

  • Rilis Node.js 6.

 

2017


  • Npm mulai lebih memperhatikan keamanan.

  • Rilis Node.js 8

  • Munculnya dukungan untuk HTTP / 2.

  • V8 secara resmi diakui sebagai mesin JS yang dirancang tidak hanya untuk Chrome tetapi juga untuk Node.

  • Ada 3 miliar unduhan npm setiap minggu.

 

2018


  • Rilis Node.js 10.

  • Dukungan untuk modul ES.

  • Dukungan mjs eksperimental.