Wajah menggunakan nodejs fundamental
Pemrogramaman berbasis event bisa sangat luar biasa untuk pemula, yang bisa membuat Node. js sulit untuk dimulai. Tapi jangan biarkan hal itu menghalangi Go on; . js dan menjelaskan mengapa ia menjadi sangat populer Show
candiUntuk mulai menggunakan Node. js, Anda harus terlebih dahulu memahami perbedaan antara Node. js dan lingkungan skrip sisi-server tradisional (misalnya. php, python, rubi, dll. ) Pemrogramman Asinkron
Mungkin bagus bahwa Anda terbiasa dengan pemrograman asinkron; . Setiap fungsi di Node. js bersifat asinkron.js. Oleh karena itu, semua yang biasanya memblokir thread malah dieksekusi di latar belakang. Ini adalah hal terpenting untuk diingat tentang Node. js. Misalnya, jika Anda membaca file pada sistem file, Anda harus menentukan fungsi callback yang dijalankan saat operasi selesai Go yang Melakukan SegalanyaJangan berikan. js hanyalah sebuah lingkungan - yang berarti anda harus melakukan semuanya sendiri. Tidak ada server HTTP default, atau server apa pun dalam hal ini. Ini bisa sangat luar biasa bagi pengguna baru, tetapi hasilnya adalah aplikasi web berkinerja tinggi. Satu skrip menangani semua komunikasi dengan klien. Hal ini sangat mengurangi jumlah sumber daya yang digunakan oleh aplikasi. Sebagai contoh, berikut adalah kode untuk aplikasi Node. sederhana var i, a, b, c, max; max = 1000000000; var d = Date.now(); for (i = 0; i < max; i++) { a = 1234 + 5678 + i; b = 1234 * 5678 + i; c = 1234 / 2 + i; } console.log(Date.now() - d); Dan di sini adalah yang setara ditulis dalam PHP ________satu_______Sekarang mari kita lihat angka benchmarknya. Tabel berikut mencantumkan waktu respons, dalam milidetik, untuk dua aplikasi sederhana ini jumlah iterasiNode. jsPHP1002. 000. 1410'0003. 0010. 531'000'00015. 001119. 2410'000'000143. 0010621. 461'000'000'00011118. 001036272. 19Saya menjalankan dua aplikasi dari baris perintah sehingga server tidak akan menuda eksekusi aplikasi. Saya menjalankan setiap tes sepuluh kali dan hasilnya sama rata. PHP terutama lebih cepat dengan jumlah iterasi yang lebih sedikit, namun keuntungan itu cepat menghilang seiring bertambahnya jumlah iterasi. Ketika semua dikatakan dan dilakukan, PHP 93% lebih lambat dari Node. js Jangan berikan. js cepat, tapi Anda perlu mempelajari beberapa hal agar bisa menggunakannya dengan benar modul-modulJangan berikan. js menggunakan modul arsitektur untuk mempermudah pembuatan aplikasi yang kompleks. Modul mirip dengan pustaka di C, atau unit dalam Pascal. Setiap modul berisi satu set fungsi yang terkait dengan "subjek" dari modul. Misalnya, modul http berisi fungsi khusus untuk HTTP. Jangan berikan. js menyediakan beberapa modul inti di luar kotak untuk membantu Anda mengakses file pada file sistem, membuat server HTTP dan TCP/UDP, dan melakukan fungsi berguna lainnya Memasukkan modul itu mudah; var http = require('http');
Fungsi var http = require('http');2 mengembalikan referensi ke modul yang ditentukan. Dalam kasus kode ini, referensi ke modul http disimpan dalam variabel var http = require('http');4 Dalam kode di atas, kami memberikan nama modul ke fungsi var http = require('http');2. Ini menyebabkan Node mencari folder node_modules di direktori aplikasi kita, dan mencari modul http di folder itu. Jika Node tidak menemukan folder node_modules (atau modul http di dalamnya), maka Node akan melihat melalui cache modul global. Anda juga dapat menentukan file yang sebenarnya dengan melewati jalur relatif atau absolut, seperti var myModule = require('./myModule.js'); Modul adalah potongan kode yang dienkapsulasi. Kode dalam modul sebagian besar bersifat private - yang berarti bahwa fungsi dan variabel yang ditentukan di dalamnya hanya dapat diakses dari bagian dalam modul. Anda dapat, bagaimanapun, mengekspos fungsi dan/atau variabel yang akan digunakan di luar modul. Untuk melakukannya, gunakan objek var http = require('http');_6 dan isi properti dan metodenya dengan potongan kode yang ingin Anda paparkan. Perhatikan modul berikut ini sebagai contoh var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_ Kode ini menciptakan variabel var http = require('http');_7 yang hanya dapat diakses oleh kode yang terdapat dalam modul; . Selanjutnya, dua fungsi dibuat pada objek var http = require('http');6. Fungsi-fungsi ini dapat diakses di luar modul karena mereka didefinisikan pada objek var http = require('http');6. Akibatnya, var http = require('http');_7 benar-benar terlindungi dari gangguan luar. Oleh karena itu, Anda dapat yakin bahwa var myModule = require('./myModule.js');1 dan var myModule = require('./myModule.js');2 akan selalu berperilaku sebagaimana layaknya (selama sebuah nilai diberikan untuk parameter var myModule = require('./myModule.js');3) Lingkup globalNode adalah lingkungan JavaScript yang berjalan di mesin JavaScript V8 dari Google. Karena itu, kita harus mengikuti praktik terbaik yang kita gunakan untuk pengembangan sisi-klien. Misalnya, kita harus menghindari menempatkan sesuatu ke dalam lingkup global. Itu, bagaimanapun, tidak selalu memungkinkan. Lingkup global di Node adalah var myModule = require('./myModule.js');4 (berlawanan dengan var myModule = require('./myModule.js');5 di browser), dan Anda dapat dengan mudah membuat variabel global dari fungsi dengan menghilangkan kata kunci var myModule = require('./myModule.js');6, seperti ini________dua puluh_______ Kemudian lagi, global harus dihindari sebisa mungkin. Jadi hati-hati dan ingatlah untuk menggunakan var myModule = require('./myModule.js');_6 saat mendeklarasikan sebuah variabel installasiTentu, kita perlu menginstal Node sebelum kita bisa menulis dan menjalankan sebuah aplikasi. Instasinya sederhana, jika Anda menggunakan Windows atau OS X; . org menawarkan penginstal untuk sistem operasi tersebut. Untuk Linux, gunakan paket manager. Buka terminal dan ketik sudo apt-get update sudo apt-get install node peti mati sudo aptitude update sudo aptitude install node Jangan berikan. js berada di sid repositori; sudo echo deb http://ftp.us.debian.org/debian/ sid main > /etc/apt/sources.list.d/sid.list Namun perlu diingat bahwa menginstal paket sid pada sistem yang lebih tua dapat merusak sistem Anda. Hati-hati, dan hapus var myModule = require('./myModule.js');_8 setelah Anda selesai menginstal Node menggantikan Modul BaruJangan berikan. js memiliki manager package, yang disebut Node Package Manager (NPM). Ini otomatis diinstal dengan Node. js, dan Anda menggunakan NPM untuk menginstal modul baru. Untuk menginstal modul, buka terminal/command line Anda, navigasikan ke folder yang diinginkan, dan jalankan perintah berikut npm install module_name Tidak masalah OS apa yang Anda miliki; Aplikasi Halo DuniaTentu saja, skrip Node. js pertama kita akan mencetak teks var myModule = require('./myModule.js');9 ke konsol. Buat file yang bernama hello. js, dan ketik kode berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_0 Sekarang mari kita jalankan skripnya. Buka terminal/command line, arahkan ke folder yang berisi hello. js, dan jalankan perintah berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_1 Go harus melihat var myModule = require('./myModule.js');9 ditampilkan di konsol Server HTTPMari beralih ke aplikasi yang lebih canggih; . Mari kita mulai dengan kode berikut. Baca komentarnya dan kemudian penjelasannya di bawah ini $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_2 Kode ini sangat sederhana. Anda dapat mengirim lebih banyak data ke klien dengan menggunakan metode var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };1 , namun Anda harus memanggilnya sebelum memanggil var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };2. Simpan kode ini sebagai http. js dan ketik ini ke konsol Anda $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_3 Buka browser Anda dan navigasikan ke var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };3. Anda harus melihat teks "Halo HTTP. "kata halaman parameter URL parameterSeperti yang saya sebutkan sebelumnya, kita harus melakukan semuanya sendiri di Node, termasuk menguraikan permintaan argumen. Ini, bagaimanapun, cukup sederhana. Lihat kode berikut ini $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_4 Kode ini menggunakan method var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_4 dari modul url, modul inti Node. js, untuk mengubah URL permintaan ke sebuah objek. Objek yang dikembalikan memiliki properti var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_5, yang mengambil parameter URL. Simpan file ini sebagai get. js dan jalankan dengan perintah berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_5 Lalu, navigasikan ke __ var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_6 di browser Anda. Tentu, mengubah nilai parameter var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_7 tidak akan merusak skrip Membaca dan Menulis FileUntuk mengatur file di Node, kita menggunakan modul fs (modul inti). Kita membaca dan menulis file menggunakan metode var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_8 dan var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };9. Saya akan menjelaskan argument-argumennya setelah kode berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_6
Simpan ini sebagai file. js. Sebelum menjalankan skrip ini, buatlah sebuah file bernama test. txt di direktori yang sama dengan files. js Kode ini metode mendemokan var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_8 dan var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };9. Setiap kali server menerima permintaan, skrip tersebut membaca sebuah nomor dari file, menambahkan nomornya, dan menulis nomor baru ke file tersebut. Metode var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_8 menerima tiga argumen. nama file yang akan dibaca, pengkodean yang diharapkan, dan fungsi callback Menulis ke file, paling tidak dalam kasus ini, jauh lebih sederhana. Kita tidak perlu menunggu hasil apapun, meski Anda akan mengecek kesalahan dalam aplikasi nyata. Metode var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };_9 menerima nama file dan data sebagai argumen. Ini juga menerima argumen ketiga dan keempat (keduanya opsional) untuk menentukan fungsi pengkodean dan callback Sekarang, mari jalankan skrip ini dengan perintah berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_7 Buka di browser (__ var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };3) dan segarkan beberapa kali. Sekarang, Anda mungkin berpikir bahwa ada kesalahan dalam kode karena tampaknya meningkat dua kali. Ini bukan kesalahan. Setiap kali Anda meminta URL ini, permintaan dua dikirim ke server. permintaan pertama dibuat secara otomatis oleh browser, yang meminta favicon. ico, dan tentu saja, permintaan kedua adalah untuk URL ( var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };3) Meski perilaku ini secara teknis bukan merupakan kesalahan, itu adalah perilaku yang tidak kita inginkan. Kita dapat memperbaikinya dengan mudah dengan memeriksa permintaan URL. Berikut adalah kode yang direvisi $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_8 Ujilah sekarang; Mengakses Database MySQLSebagian besar teknologi sisi-server tradisional memiliki cara bawaan untuk menghubungkan dan melakukan kueri database. Dengan Node. js, Anda harus menginstal sebuah perpustakaan. Untuk tutorial ini, saya sudah memilih node-mysql yang stabil dan mudah digunakan. Nama lengkap dari modul ini adalah mysql@2. 0. 0-alpha2 (semuanya setelah @ adalah nomor versi). Buka konsol Anda, arahkan ke direktori tempat Anda menyimpan skrip Anda, dan jalankan perintah berikut $a = null; $b = null; $c = null; $i = null; $max = 1000000000; $start = microtime(true); for ($i = 0; $i < $max; $i++) { $a = 1234 + 5678 + $i; $b = 1234 * 5678 + $i; $c = 1234 / 2 + $i; } var_dump(microtime(true) - $start);_9 Ini mengunduh dan menginstal modul, dan juga membuat folder node_modules di direktori saat ini. Sekarang mari kita lihat bagaimana kita bisa menggunakan ini dalam kode kita; var http = require('http');0 Melakukan kueri database dengan perpustakaan ini mudah; . Dalam aplikasi nyata, Anda harus memeriksa apakah ada kesalahan (parameter globalVariable = 1; globalFunction = function () { .. };6 tidak akan menjadi globalVariable = 1; globalFunction = function () { .. };_7 jika terjadi kesalahan) dan mengirim kode respons bergantung pada keberhasilan atau kegagalan kueri. Perhatikan juga bahwa kita telah mengaktifkan globalVariable = 1; globalFunction = function () { .. };_8 menjadi globalVariable = 1; globalFunction = function () { .. };_9, yang merupakan tipe MIME yang valid untuk JSON. Parameter sudo apt-get update sudo apt-get install node0 berisi hasil kueri, dan kita cukup mengonversi data dalam sudo apt-get update sudo apt-get install node0 ke JSON menggunakan metode sudo apt-get update sudo apt-get install node2 Simpan file ini sebagai mysql. js, dan jalankan (jika Anda menginstal MySQL, yaitu) var http = require('http');1 Arahkan ke var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; };3 di browser Anda, dan Anda harus diminta mengunduh file berformat JSON Kesimpulan
Jangan berikan. js membutuhkan kerja ekstra, tetapi hasil dari aplikasi yang cepat dan kuat sangat layak. Jika Anda tidak ingin melakukan semuanya pada level terendah, Anda selalu dapat memilih beberapa kerangka kerja, seperti >Express, untuk mempermudah pengembangan aplikasi Jangan berikan. js adalah teknologi yang menjanjikan dan pilihan yang sangat baik untuk aplikasi dengan beban tinggi. Ini telah dibuktikan oleh banyak perusahaan, seperti Microsoft, eBay, dan Yahoo. Jika Anda tidak yakin tentang hosting situs web/aplikasi Anda, Anda selalu dapat menggunakan solusi VPS murah atau berbagai layanan berbasis cloud, seperti Microsoft Azure dan Amazon EC2. Semua layanan ini menyediakan lingkungan terukur dengan harga yang wajar Bagaimana menghadapi kerja Nodejs?Simpul Kerja Wajah. js
Simpul. js menggunakan operasi I/O non-blocking. Artinya, saat client mengirim permintaan ke web server, event loop single-threaded Node JS akan menerima permintaan tersebut lalu mengirimkannya ke thread pekerja untuk diproses.
Nodejs digunakan untuk apa?Simpul. js merupakan platform yang diciptakan secara khusus untuk membantu pengembangan aplikasi berbasis web. Namun demikian, Node. js bukan bahasa pemrogramaman yang baru, tetapi runtime environment atau interpreter untuk menjalankan bahasa pemrogramaman JavaScript sebagai kebutuhan pengembangan back-end.
Apa perbedaan JavaScript dan Node JS?JavaScript dan Node JS memiliki peran masing-masing untuk mengoptimalkan aplikasi berbasis web. Secara umum JavaScript sebagai bahasa pemrograman dan Node JS merupakan runtime yang mengeksekusi instruksi pada JavaScript .
Apakah Node JS bisa menjalankan server?Simpul . js adalah salah satu platform berbasis Javascript yang dapat bekerja di sisi server ( server ). |