Beberapa waktu yang lalu, saya melihat sebuah artikel yang menyebutkan kata rata -rata. Apa artinya?
Faktanya, MENA adalah singkatan dari MongoDB (database non-relasional) + Express (Templat Engine) + AngularJS (MVC JavaScript Library) + NodeJS (skrip server).
Bersama-sama mereka membangun alat pengembangan full-stack aplikasi web modern berdasarkan JavaScript.
MongoDB:
Ini adalah cara yang kuat, fleksibel dan dapat diskalakan untuk menyimpan data.
Ini memperluas banyak fitur yang berguna dari database relasional, seperti pengindeksan tambahan, rentang permintaan, dan penyortiran, dukungan bawaannya untuk agregasi gaya mapReduce dan dukungan untuk pengindeksan geospasial.
Ini menggantikan konsep baris basis data tradisional dengan model dokumen, model dokumen yang disebut sebenarnya adalah objek array.
Mari kita lihat model dokumen:
{"_id": 1, "ucapan": "Halo, dunia!" , "foo": 3}
Setiap dokumen akan memiliki bidang _id. Model dokumen mewakili catatan dalam database yang berisi bidang ucapan, foo dan _id;
Cepat:
Mengenai mesin terakhir Express, saya ingin menggambarkannya dalam sebuah kalimat:
Ini adalah kerangka aplikasi Node.jsweb yang sederhana dan fleksibel, menyediakan serangkaian fitur yang kuat untuk membantu Anda membuat berbagai aplikasi web.
Alat HTTP yang kaya dan middleware dari kerangka kerja Connect tersedia sesuka Anda, membuatnya cepat dan mudah untuk membuat API yang kuat dan ramah
Express tidak melakukan abstraksi sekunder dari fitur node.js yang ada, kami hanya memperluas fungsi yang diperlukan oleh aplikasi web di atasnya.
AngularJS:
AngularJS adalah perpustakaan JS yang dikembangkan oleh Google. Ini adalah pustaka skrip MVC yang sama dengan backone.
Pelajaran pertama di hampir setiap bahasa adalah tentang Hello World. Menurut konvensi, kami juga akan melakukan satu:
Salinan kode adalah sebagai berikut:
<! Doctype html>
<html ng-app>
<head>
<skrip src = "http://code.angularjs.org/angular-1.0.1.min.js"> </script>
</head>
<body>
Halo {{'world'}}!
</body>
</html>
<html ng-app>
Menyatakan bahwa halaman menggunakan AngularJS, dan ketika halaman dimuat, tag Ng-App memberi tahu AngularJS untuk memproses seluruh halaman HTML dan mem-boot aplikasi.
Contoh ini mencetak Hello World di halaman, dan beberapa orang terkejut, mengapa Hello World begitu rumit?
Faktanya, konten dalam {{}} adalah bentuk pengikatan data. Setelah membaca contoh berikutnya, Anda akan mengetahui kekuatannya.
Mari kita lihat contoh berikutnya:
Salinan kode adalah sebagai berikut:
<! Doctype html>
<html ng-app>
<head>
<Script src = "Angular-1.0.1.min.js"> </script>
</head>
<body>
Nama Anda: <input type = "Text" ng-Model = "yourname" placeholder = "world">
<Hr>
Halo {{youName || 'Dunia'}}!
</body>
</html>
Buka halaman ini di browser Anda dan coba masukkan karakter acak di kotak input. Anda akan menemukan bahwa karakter yang dimasukkan segera diperbarui dan ditampilkan dalam salam. Bukankah itu sangat ajaib?
Memikirkan. Setiap perubahan pada kotak input segera tercermin ke variabel model (One Direction), dan setiap perubahan pada variabel model segera tercermin ke teks ucapan (arah lain).
Contoh ini memiliki catatan penting berikut:
1. Instruksi Input Teks <Input ng-model = "YouName" /> terikat ke variabel model yang disebut yourname.
2. Double Brace Mark Menambahkan Variabel Model Anda ke Teks Ucapan.
3. Anda tidak perlu mendaftarkan pendengar acara atau menambahkan penangan acara untuk aplikasi ini!
NodeJS
Ini adalah platform JS server berkinerja tinggi yang dikembangkan oleh Ryan Dahl.
Ini dikembangkan di mesin V8, mesin JavaScript yang dikembangkan oleh Google, bukan mesin V8 mobil - ini adalah mesin berkinerja tinggi yang jauh melebihi bahasa skrip lainnya.
NodeJS menggunakan metode komunikasi I/O asinkron, yang sangat mirip dengan Ajax:
Salinan kode adalah sebagai berikut:
$ .post ("url", {title: "Post Request"}, function (data) {
console.log ("respons diterima");
})
Console.log ("Kirim Ajax End");
Metode Permintaan Nodejs:
Salinan kode adalah sebagai berikut:
var fs = membutuhkan ('fs');
fs.readfile ("/path", function (err, file) {
Console.log ("Baca File Lengkap");
});
console.log ("inisiate baca file");
Mari kita lihat contoh berikut:
Ketika dua permintaan dieksekusi secara bersamaan, total konsumsi waktu tergantung pada yang paling banyak mengkonsumsi waktu, daripada jumlah konsumsi waktu dari dua permintaan, karena mereka paralel.
Salinan kode adalah sebagai berikut:
// Permintaan pertama
var fs = membutuhkan ('fs');
fs.readfile ("/path1", function (err, file) {
Console.log ("Baca File 1 Selesai");
});
// Permintaan kedua
fs.readfile ("/path2", function (err, file) {
Console.log ("Baca File 2 selesai");
});
console.log ("inisiate baca file");
Alasan lain mengapa nodejs memiliki kinerja tinggi adalah berbasis peristiwa:
Node memperkenalkan peristiwa di browser front-end ke back-end, dan bekerja sama dengan I/O asinkron untuk mengekspos poin acara ke logika bisnis.
Cara peristiwa menjadi memiliki keunggulan kopling ringan dan longgar, hanya berfokus pada hal -hal poin.