Beranda » Coding » Panduan Pemula untuk Node.js (JavaScript sisi-Server)

    Panduan Pemula untuk Node.js (JavaScript sisi-Server)

    Node.js - dengan kata sederhana - adalah JavaScript sisi server. Sudah mendapat banyak buzz hari ini. Jika Anda pernah mendengarnya atau Anda tertarik untuk belajar dan menanganinya - posting ini untuk Anda.

    Jadi apa sebenarnya kebutuhan menggunakan JavaScript di server? Untuk membuat konsep Node.js jelas, saya ingin membandingkannya dengan bahasa sisi server biasa seperti PHP. Node.js menggunakan prosedur eksekusi server berbasis peristiwa daripada eksekusi multithreaded di PHP.

    Untuk menjelaskannya lebih lanjut, kita akan membicarakan ide tentang apa itu Node.js bersama dengan beberapa saran penyedia hosting dan tips pemasangan. Diperlukan pengetahuan tingkat menengah tentang JavaScript, jQuery dan Ajax, tetapi kami juga akan memberikan contoh bagi Anda untuk memahami semuanya secara lebih mudah dan bahkan bekerja di dalamnya, jadi mari kita mengenal lebih lanjut tentang Node.js!

    Mari kita pertimbangkan sebuah kasus:

    Pertimbangkan situs web tempat Anda perlu memuat konten secara dinamis dari server web lain yang lambat. Di PHP Anda bisa melakukannya dengan 2 cara - mengkodekannya dalam file sederhana dan mengkodekannya sebagai skrip lain, kemudian mengeksekusinya dalam pendekatan multithreaded.

    Pada metode pertama meskipun kodenya sederhana eksekusi berhenti sebentar pada titik di mana server web lambat diakses. Metode kedua adalah lebih dioptimalkan dalam hal kinerja tetapi sulit untuk kode dan memiliki overhead manajemen multithread. Kasingnya mirip untuk sebagian besar bahasa pemrograman web selain JavaScript sisi-server, mis., Node.js.

    Apa perbedaan di Node.js? Untuk memahami Node.js, Anda harus mengingat Pemrograman berbasis event JavaScript di browser. Kami menggunakan teknologi yang sama di sini. Alih-alih menggunakan utas terpisah, a fungsi terlampir pada acara selesai dari “akses server web lambat” disebutkan di atas, sehingga Anda mendapatkan fungsionalitas penuh dalam opsi kedua dioptimalkan yang disebutkan di atas tanpa overhead multithread.

    Memulai dengan Node.js

    Node.js adalah JavaScript. Mengapa kita tidak bisa memanfaatkan fungsionalitas berbasis event JavaScript di klien ke server? Pikiran ini mungkin mengarah pada pengembangan Node.js.

    Yang mengatakan, sorotan utama Node.js - itu adalah fungsi asinkron berbasis peristiwa. Ini menggunakan loop acara alih-alih menunggu operasi I / O (mengakses layanan web eksternal, mengakses perangkat keras).

    Node.js masih bisa memanfaatkan kekuatan pemrosesan ketika server sedang menunggu operasi lainnya. Ini membuat Node.js scalable ke jutaan koneksi bersamaan.

    Bagaimana JavaScript Berjalan Di Server?

    Node.js bekerja pada lingkungan v8 - itu adalah mesin virtual atau a Mesin JavaScript yang menjalankan kode JavaScript, jadi untuk hosting Anda tidak dapat menggunakan host web biasa. Anda akan membutuhkan yang memiliki lingkungan v8.

    Berikut adalah beberapa saran penyedia untuk hosting Node.js:

    1. Cloud Foundry
    2. Cloudnode
    3. DotCloud
    4. Duostack

    Menginstal Node.js

    Node akan bekerja dengan sempurna di sistem operasi Linux, Macintosh, dan Solaris. Pada Windows Anda dapat menginstalnya menggunakan lapisan emulasi Cygwin. Tidak ada build di Windows yang memuaskan tetapi masih memungkinkan untuk menjalankan sesuatu.

    Opsi 1: Membangun Node dari sumber.

    Menggunakan membuat untuk membangun dan menginstal node.js (jalankan perintah berikut pada baris perintah). Dibutuhkan Git.

     git clone --depth 1 git: //github.com/joyent/node.git cd node git checkout v0.4.11 ekspor JOBS = 2 mkdir ~ / local ./configure --prefix = $ HOME / local / node make make install echo 'export PATH = $ HOME / local / node / bin: $ PATH' >> ~ / .profile echo 'export NODE_PATH = $ HOME / local / node: $ HOME / local / node / lib / node_modules' >> ~ / .profile source ~ / .profile 

    Opsi 2: Menginstal Node.js dari Paket

    Untuk pengguna Mac, Anda dapat menginstal Node.js sebagai paket dari https://sites.google.com/site/nodejsmacosx/ yang cukup jelas..

    Menguji Instalasi Node

    Untuk memeriksa pemasangan Node yang berhasil, kami dapat mencoba program "Hello World" konsol yang sangat sederhana. Buat file dengan nama "test.js"dan tulis kode berikut ke dalamnya.

     var sys = membutuhkan ("sys"); sys.puts ("Hello World"); 

    Penjelasan kode:

    Itu memuat sys kelas menjadi variabel sys. Kemudian menggunakan sys objek untuk melakukan tugas-tugas konsol. Itu sys.puts adalah perintah yang mirip dengan Cout di C ++, jadi untuk menjalankan skrip di atas, pergi ke command prompt dan jalankan dengan perintah di bawah ini:

     node test.js 

    Jika instalasi Anda berhasil maka Anda akan mendapatkan output hello world di layar.

    Membuat Server HTTP

    Sekarang saatnya membuat "Hello World" melalui server web menggunakan Node.js. Inilah yang akan kita lakukan - kita buat server yang menghasilkan a “Halo Dunia” ke localhost di port 8080 tidak peduli apa URL itu, memberi Anda ide apa peristiwa aku s.

    Kode:

     var sys = butuhkan ("sys"), my_http = butuhkan ("http"); my_http.createServer (fungsi (permintaan, respons) sys.puts ("Saya ditendang"); response.writeHeader (200, "Tipe-Konten": "text / plain"); response.write ("Hello World "); response.end ();). dengarkan (8080); sys.puts ("Server Menjalankan pada 8080"); 

    Penjelasan kode:

    Bagian yang paling menarik di Node.js adalah pemrograman berbasis acara. Untuk membuat server HTTP, kita memerlukan Pustaka HTTP, jadi kami maju dan menambahkannya menggunakan my_http. Kami membuat server dengan fungsi:

     my_http.createServer (fungsi (permintaan, respons) ). dengarkan (8080); 

    Fungsi yang diberikan sebagai argumen pertama dijalankan setiap kali suatu peristiwa dipicu di port 8080, jadi fungsinya sendiri menyarankan node untuk mendengarkan suatu acara di port 8080. Untuk mendeteksi ini, saya telah menambahkan “Saya ditendang” pesan yang akan ditampilkan di layar konsol setiap kali permintaan diterima.

    Itu permintaan objek berisi semua informasi tentang permintaan yang telah dibuat ke server. Misalnya berisi string URL. Itu tanggapan objek adalah objek itu menangani respons dari server. Pertama-tama kita mengatur tajuk respons sebagai a teks / polos konten, lalu keluaran “Halo Dunia“, kemudian akhiri aliran output. 200 adalah respons status.

    Nah, yang di atas adalah contoh yang sangat sederhana tetapi kita dapat melihat bahwa apa pun URL yang kita berikan di browser untuk server yang sama kita mendapatkan output yang sama seperti “Halo Dunia”.

    Membuat server file statis sederhana

    Mari kita buat file server statis sederhana di tutorial selanjutnya.

    Kode:

     var sys = butuhkan ("sys"), my_http = butuhkan ("http"), path = require ("path"), url = butuhkan ("url"), filesys = butuhkan ("fs"); my_http.createServer (fungsi (permintaan, respons) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, fungsi (ada ) if (! exist) response.writeHeader (404, "Tipe-Konten": "text / plain"); response.write ("404 Tidak Ditemukan \ n"); response.end (); lain filesys.readFile (full_path, "binary", fungsi (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "\ n"); response.end (); else response.writeHeader (200); response.write (file, "binary"); response.end ();););). dengarkan (8080); sys.puts ("Server Menjalankan pada 8080"); 

    Penjelasan kode:

    Kode di atas cukup sederhana, kita akan membahasnya sebagai blok.

     var sys = butuhkan ("sys"), my_http = butuhkan ("http"), path = require ("path"), url = butuhkan ("url"), filesys = butuhkan ("fs"); 

    Semua perpustakaan ini diperlukan untuk program ini. Penggunaannya akan jelas dalam kode berikut.

     var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); 

    Itu permintaan objek memiliki detail permintaan seperti yang telah kita bahas sebelumnya. Kami menggunakan parse fungsi kelas URL yang telah kami sertakan untuk mendapatkan pathname dari URL permintaan. Setelah mendapatkan pathname, kami menggabungkannya dengan path direktori kerja saat ini untuk mendapatkan path lengkap file.

    Untuk bergabung dengan URL, kami memiliki fungsi yang disebut ikut di perpustakaan jalur.

     path.exists (full_path, fungsi (ada)  

    Setelah mendapatkan path lengkap kami memeriksa apakah path ada oleh fungsi ada. Setelah pemeriksaan selesai, fungsi panggilan balik dipanggil dan diteruskan sebagai argumen kedua.

     if (! exist) response.writeHeader (404, "Content-Type": "text / plain"); response.write ("404 Tidak Ditemukan \ n"); response.end ();  else filesys.readFile (full_path, "binary", function (err, file) if (err) response.writeHeader (500, "Tipe-Konten": "text / plain"); response.write ( err + "\ n"); response.end (); else response.writeHeader (200); response.write (file, "binary"); response.end (););  

    Sekarang dalam fungsi panggilan balik jika file tidak ada, kami mengirim "404 halaman tidak ditemukan"kesalahan.

    Jika halaman ditemukan maka kita membaca file dengan readFile berfungsi dalam sistem file. Kita juga dapat melihat fungsi panggilan balik untuk readFile fungsi yang didefinisikan di sana sendiri. Jika tidak ada kesalahan dalam membaca file maka akan ditampilkan. Jika ada kesalahan maka status 500 dikembalikan dengan teks kesalahan.

    Saya juga merekomendasikan membungkus kode tutorial sebelumnya ke dalam suatu fungsi sehingga Anda dapat menggunakannya dalam tutorial berikutnya atau untuk digunakan di masa depan.

     var sys = butuhkan ("sys"), my_http = butuhkan ("http"), path = require ("path"), url = butuhkan ("url"), filesys = butuhkan ("fs"); my_http.createServer (fungsi (permintaan, respons) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, fungsi (ada ) if (! exist) response.writeHeader (404, "Tipe-Konten": "text / plain"); response.write ("404 Tidak Ditemukan \ n"); response.end (); lain filesys.readFile (full_path, "binary", fungsi (err, file) if (err) response.writeHeader (500, "Content-Type": "text / plain"); response.write (err + "\ n"); response.end (); else response.writeHeader (200); response.write (file, "binary"); response.end (););); my_http. createServer (fungsi (permintaan, respons) var my_path = url.parse (request.url) .pathname; load_file (my_path, respons);) .dengarkan (8080); sys.puts ("Server Berjalan pada 8080"); 

    Tetap disini !

    Itu saja. Semoga ini memberi Anda ide bagus tentang Node.js. Pada artikel selanjutnya, saya akan menunjukkan caranya memuat dan menampilkan jumlah suka Facebook menggunakan Node.js. Tetap disini!

    Catatan Editor: Posting ini ditulis oleh Geo Paul untuk Hongkiat.com. Geo adalah pengembang Web / iPhone independen yang senang bekerja dengan PHP, Codeigniter, WordPress, jQuery dan Ajax. Dia memiliki 4 tahun pengalaman dalam PHP dan 2 tahun pengalaman iniPhone pengembangan aplikasi.