Saya baru dalam hal seperti ini, tapi akhir-akhir ini saya'telah mendengar banyak tentang seberapa baik Node.js. Mengingat berapa banyak saya suka bekerja dengan jQuery dan JavaScript secara umum, saya dapat't membantu tetapi bertanya-tanya bagaimana untuk memutuskan kapan untuk gunakan Node.js. Aplikasi web yang saya miliki dalam pikiran adalah sesuatu seperti Cara - mengambil beberapa konten, arsip-arsip itu.
Dari semua pekerjaan yang telah saya lakukan dalam beberapa hari terakhir, saya peroleh informasi berikut. Node.js
Beberapa sumber yang saya temui adalah:
Mengingat bahwa Node.js dapat menjalankan hampir out-of-the-box pada Amazon's EC2 contoh-contoh, saya mencoba untuk memahami apa jenis masalah yang memerlukan Node.js sebagai lawan untuk setiap perkasa raja-raja di luar sana seperti PHP, Python dan Ruby. Saya mengerti bahwa itu benar-benar tergantung pada keahlian seseorang pada suatu bahasa, tetapi pertanyaan saya jatuh lagi ke dalam kategori umum: Ketika menggunakan kerangka tertentu dan apa jenis masalah ini sangat cocok untuk?
Anda melakukan pekerjaan yang besar meringkas apa yang's mengagumkan tentang Node.js. Perasaan saya adalah bahwa Node.js sangat cocok untuk aplikasi di mana anda'd seperti untuk menjaga koneksi tetap dari browser kembali ke server. Menggunakan teknik yang dikenal sebagai "long-polling", anda dapat menulis sebuah aplikasi yang mengirimkan update kepada pengguna secara real time. Melakukan polling pada banyak web's raksasa, seperti Ruby on Rails atau Django, akan membuat besar beban pada server, karena setiap klien aktif memakan satu server proses. Situasi ini jumlah tarpit serangan. Ketika anda menggunakan sesuatu seperti Node.js, server tidak perlu mempertahankan thread terpisah untuk masing-masing sambungan terbuka.
Ini berarti anda dapat membuat browser berbasis aplikasi chat dalam Node.js yang mengambil hampir tidak ada sumber daya sistem untuk melayani banyak klien besar. Setiap kali anda ingin melakukan hal semacam ini lama-polling, Node.js adalah pilihan yang bagus.
It's worth menyebutkan bahwa Ruby dan Python keduanya memiliki alat-alat untuk melakukan hal semacam ini (eventmachine dan twisted, masing-masing), tapi yang Node.js apakah itu sangat baik, dan dari bawah ke atas. JavaScript adalah sangat baik terletak untuk callback berbasis concurrency model, dan itu unggul di sini. Juga, mampu serialize dan deserialize dengan JSON asli untuk kedua klien dan server adalah cukup bagus.
Saya berharap untuk membaca jawaban yang lain di sini, ini adalah pertanyaan yang fantastis.
It's worth menunjukkan bahwa Node.js ini juga bagus untuk situasi di mana anda'akan menggunakan banyak kode di seluruh client/server kesenjangan. The Meteor framework membuat ini benar-benar mudah, dan banyak orang menyarankan ini mungkin menjadi masa depan dari pengembangan web. Saya dapat mengatakan dari pengalaman bahwa itu's seluruh banyak menyenangkan untuk menulis kode di Meteor, dan bagian besar dari ini menghabiskan lebih sedikit waktu untuk berpikir tentang bagaimana anda're akan merestrukturisasi data anda, sehingga kode yang berjalan di browser dapat dengan mudah memanipulasi dan menyebarkannya kembali.
Berikut ini's artikel pada Piramida dan panjang-tempat pemungutan suara, yang ternyata menjadi sangat mudah untuk mengatur dengan sedikit bantuan dari gevent: TicTacToe dan Long Polling dengan Piramida.
Saya percaya Node.js sangat cocok untuk aplikasi real-time: game online, alat-alat kolaborasi, chat room, atau apa pun di mana yang satu pengguna (atau robot? atau sensor?) tidak dengan kebutuhan aplikasi yang akan dilihat oleh pengguna lain yang segera, tanpa refresh halaman.
Saya juga harus menyebutkan bahwa Soket.IO di kombinasi dengan Node.js akan mengurangi anda real-time latency lebih jauh dari apa yang mungkin dengan long polling. Soket.IO akan jatuh kembali ke long polling sebagai skenario kasus terburuk, dan alih-alih menggunakan web soket atau bahkan Flash jika mereka tersedia.
Tapi saya juga harus menyebutkan bahwa hampir semua situasi di mana kode yang mungkin memblokir karena benang dapat diatasi lebih baik dengan Node.js. Atau situasi di mana anda perlu aplikasi untuk event-driven.
Juga, Ryan Dahl mengatakan dalam sebuah ceramah yang saya pernah menghadiri bahwa Node.js tolok ukur erat saingan Nginx untuk reguler tua permintaan HTTP. Jadi jika kita membangun dengan Node.js, kita dapat berfungsi normal kami sumber daya yang cukup efektif, dan ketika kita membutuhkan event-driven hal-hal, hal's siap untuk menanganinya.
Plus itu's semua JavaScript sepanjang waktu. Lingua Franca di seluruh stack.
Alasan untuk menggunakan NodeJS:
Ada yang single-threaded](http://www.haneycodes.net/to-node-js-or-not-to-node-js/)-event sistem cepat bahkan ketika menangani banyak permintaan sekaligus, dan juga sederhana, dibandingkan dengan tradisional multi-threaded Java atau ROR kerangka.
Berkembangnya kolam paket diakses melalui NPM, termasuk klien dan server-side perpustakaan/modul, serta command-line tools untuk pengembangan web. Sebagian besar terletak di-host di github, di mana kadang-kadang anda dapat melaporkan masalah dan menemukan itu tetap berada berjam-jam! It's nice untuk memiliki segalanya di bawah satu atap, dengan standar masalah pelaporan dan mudah forking.
Hal ini telah menjadi standar de facto lingkungan di mana untuk menjalankan Javascript-alat terkait dan lain-lain web yang berhubungan dengan alat-alat, termasuk task runners, minifiers, beautifiers, linter, preprosesor, bundlers dan analisis prosesor.
Tampaknya cukup cocok untuk prototyping, lincah dan pengembangan produk cepat iterasi.
Alasan tidak **** untuk menggunakan NodeJS:
Berjalan Javascript, yang tidak memiliki waktu kompilasi jenis pemeriksaan. Untuk besar, kompleks keamanan-kritis sistem, atau proyek-proyek yang termasuk kolaborasi antara organisasi yang berbeda, bahasa yang mendorong kontrak interface dan menyediakan statis jenis pemeriksaan dapat menyelamatkan anda beberapa waktu debugging (dan ledakan) dalam jangka panjang. (Meskipun JVM terjebak dengan null
, jadi silakan gunakan Haskell untuk reaktor nuklir.)
Menambahkan untuk itu, banyak dari paket-paket di NPM sedikit bahan, dan masih dalam perkembangan. Beberapa perpustakaan untuk dewasa kerangka kerja yang telah mengalami dekade pengujian dan penyelesaian masalah, dan sangat stabil sekarang. Npmjs.org tidak memiliki mekanisme untuk menilai paket, yang telah menyebabkan proliferasi paket melakukan lebih atau kurang hal yang sama, yang sebagian besar tidak lagi dipertahankan.
Bersarang callback neraka. (Tentu saja ada 20 solusi yang berbeda ini...)
Berkembangnya kolam paket dapat membuat satu NodeJS proyek muncul berbeda dari samping. Ada keragaman besar dalam implementasi karena sejumlah besar pilihan yang tersedia (mis. Express/Sails.js/Meteor/Derby). Hal ini dapat kadang-kadang membuat sulit untuk pengembang baru untuk melompat pada sebuah Node proyek. Kontras dengan Rel pengembang bergabung dengan proyek yang sudah ada: ia harus mampu mendapatkan akrab dengan aplikasi cukup cepat, karena semua Rel aplikasi didorong untuk menggunakan struktur mirip**.
Berhadapan dengan file yang dapat menjadi sedikit sakit. Hal-hal yang sepele dalam bahasa-bahasa lain, seperti membaca baris dari file teks, yang cukup aneh untuk dilakukan dengan Node.js yang ada's sebuah pertanyaan di StackOverflow yang dengan 80+ upvotes. Ada's tidak ada cara sederhana untuk membaca satu record pada satu waktu dari file CSV. Dll.
Aku cinta Indonesia, lebih cepat dan liar dan menyenangkan, tapi aku khawatir ia memiliki sedikit minat dalam dapat dibuktikan-kebenaran. Let's berharap kami akhirnya bisa menggabungkan yang terbaik dari kedua dunia. Saya bersemangat untuk melihat apa yang akan menggantikan Node di masa depan... :)
Untuk membuat pendek:
Node.js cocok untuk aplikasi yang memiliki banyak koneksi bersamaan dan permintaan masing-masing hanya membutuhkan sangat sedikit siklus CPU, karena acara loop (dengan semua klien lain) diblokir selama eksekusi dari suatu fungsi.
Sebuah artikel yang baik tentang peristiwa loop di Node.js adalah Mixu's blog teknologi: Pengertian node.js acara loop.
Saya punya satu contoh dunia nyata di mana saya telah digunakan Node.js. Perusahaan tempat saya bekerja punya satu klien yang ingin memiliki website HTML statis. Ini adalah website untuk menjual salah satu barang menggunakan PayPal dan client juga ingin memiliki counter yang menunjukkan jumlah item yang dijual. Klien diharapkan untuk memiliki sejumlah besar dari para pengunjung situs ini. Saya memutuskan untuk membuat meja menggunakan Node.js dan Express.js kerangka.
Yang Node.js aplikasi sederhana. Mendapatkan barang-barang yang dijual jumlah dari a Redis database, meningkatkan counter ketika barang dijual dan sajikan nilai counter untuk pengguna melalui API.
Beberapa alasan mengapa saya memilih untuk menggunakan Node.js dalam hal ini
Dalam hal ini, Node.js adalah pilihan yang mengagumkan.
Alasan yang paling penting untuk memulai proyek berikutnya menggunakan Node ...
Apa yang diharapkan ...
Siapa yang menggunakannya?
Tidak ada yang seperti Peluru Perak. Semuanya datang dengan beberapa biaya yang terkait dengan itu. Hal ini seperti jika anda makan makanan yang berminyak, anda akan membahayakan kesehatan dan makanan yang sehat tidak datang dengan rempah-rempah seperti makanan berminyak. Itu adalah pilihan individu apakah mereka ingin kesehatan atau rempah-rempah seperti dalam makanan mereka. Cara yang sama Node.js pertimbangkan untuk digunakan dalam skenario tertentu. Jika aplikasi anda tidak masuk ke dalam skenario bahwa anda tidak harus mempertimbangkan untuk pengembangan aplikasi anda. Saya hanya menempatkan pikiran saya pada hal yang sama:
Ketika menggunakan Node.JS
Ketika TIDAK menggunakan Node.JS
Skalabilitas dengan Pertimbangan Node.JS
Node.JS Alternatif
Ada pilihan lain untuk menggunakan di tempat Node.JS namun Vert.x tampaknya cukup menjanjikan dan memiliki banyak fitur tambahan seperti polygot dan skalabilitas yang lebih baik pertimbangan.
Saya piece: nodejs lebih besar untuk membuat real-time sistem seperti analytics, chat-apps, api, server-server iklan, dll. Neraka, saya pertama kali aplikasi chat menggunakan nodejs dan socket.io di bawah 2 jam dan itu juga selama ujian minggu!
Edit
Sudah beberapa tahun sejak saya mulai menggunakan nodejs dan saya telah menggunakannya dalam melakukan banyak hal yang berbeda, termasuk static file server, analisis sederhana, aplikasi chatting dan banyak lagi. Ini saya ambil pada saat menggunakan nodejs
Ketika menggunakan
Ketika membuat sistem yang menempatkan penekanan pada concurrency dan kecepatan.
Ketika tidak digunakan
Yang sangat serbaguna webserver sehingga anda dapat menggunakannya di mana pun anda inginkan, tetapi tidak mungkin tempat-tempat ini.
Perlu diingat bahwa saya hanya nitpicking. Untuk static file server, apache lebih baik terutama karena sudah banyak tersedia. Dengan nodejs masyarakat telah tumbuh lebih besar dan lebih matang selama bertahun-tahun dan itu adalah aman untuk mengatakan nodejs dapat digunakan hampir di mana-mana jika anda memiliki pilihan anda sendiri dari hosting.
Hal ini dapat digunakan di mana
Di depan Ponsel, prime-time perusahaan telah mengandalkan Node.js untuk solusi mobile. Check out mengapa?
LinkedIn adalah seorang tokoh pengguna. Seluruh ponsel tumpukan dibangun di Node.js. Mereka pergi dari berjalan 15 server dengan 15 contoh pada masing-masing mesin fisik, hanya 4 kasus – yang dapat menangani ganda lalu lintas!
eBay diluncurkan ql.io, web query language untuk HTTP Api, yang menggunakan Node.js sebagai runtime stack. Mereka mampu tune reguler pengembang-kualitas Ubuntu workstation untuk menangani lebih dari 120.000 sambungan aktif per node.js proses, dengan masing-masing koneksi mengkonsumsi sekitar 2kB memori!
Walmart re-rekayasa aplikasi mobile untuk menggunakan Node.js dan mendorong pemrosesan JavaScript ke server.
Baca lebih lanjut di: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/
Node terbaik untuk bersamaan penanganan permintaan -
Jadi, Mari kita mulai dengan sebuah cerita. Dari 2 tahun terakhir saya bekerja pada JavaScript dan mengembangkan web front end dan saya menikmati itu. Back end-orang memberikan kita beberapa API yang ditulis dalam Java,python (kami tidak peduli) dan kita hanya menulis AJAX call, mendapatkan data kami dan coba tebak ! kita selesai. Tetapi dalam kenyataan, hal ini tidak mudah, Jika data yang kita peroleh adalah tidak benar atau ada beberapa kesalahan server maka kita terjebak dan kami harus menghubungi kami kembali akhirnya orang-orang melalui e-mail atau chatting(kadang-kadang di whatsApp juga :).) Ini tidak keren. Bagaimana jika kita menulis kita API di JavaScript dan memanggil orang-orang API dari front end ? Ya, itu cukup keren karena jika kita menghadapi masalah dalam API kita bisa melihat ke dalamnya. Coba tebak ! anda dapat melakukan ini sekarang , Bagaimana ? – Node yang ada untuk anda.
Ok setuju bahwa anda bisa mendapatkan API di JavaScript tapi bagaimana jika saya ok dengan masalah di atas. Apakah anda memiliki alasan lain untuk menggunakan node untuk rest API ?
jadi di sini adalah sihir dimulai. Ya aku punya alasan lain untuk menggunakan node untuk API.
Mari kita kembali ke tradisional sisa API sistem yang didasarkan pada operasi pemblokiran atau threading. Misalkan dua bersamaan permintaan yang terjadi( r1 dan r2) , masing-masing dari mereka memerlukan operasi database. Jadi Dalam sistem tradisional apa yang akan terjadi :
1. Menunggu dengan Cara : server Kami mulai melayani r1
permintaan dan menunggu respons permintaan. setelah selesai r1
, server mulai melayani r2
dan tidak dalam cara yang sama. Jadi tunggu adalah bukan ide yang baik karena kita tidak punya banyak waktu.
2. Threading Cara : server Kami akan menciptakan dua benang untuk permintaan r1
dan r2
dan melayani tujuan mereka setelah query database keren yang cepat.Tapi hal ini memakan memori karena anda bisa melihat kami mulai dua benang juga masalah bertambah ketika kedua permintaan query data yang sama maka anda harus berurusan dengan kebuntuan jenis masalah . Jadi lebih baik menunggu dari cara tapi masih masalah yang ada.
Sekarang di sini adalah , bagaimana node yang akan melakukannya:
3. Nodeway : Saat yang bersamaan permintaan datang di node kemudian akan mendaftarkan sebuah acara dengan callback dan bergerak ke depan tidak akan menunggu respons permintaan untuk permintaan tertentu.Jadi ketika r1
permintaan datang kemudian node acara loop (ya ada acara loop di node yang melayani tujuan ini.) daftarkan sebuah acara dengan fungsi callback dan bergerak maju untuk melayani r2
permintaan dan demikian pula daftarkan event dengan callback. Setiap kali pertanyaan itu selesai pemicu yang sesuai acara dan melakukan panggilan balik untuk penyelesaian tanpa terganggu.
Jadi tidak menunggu, tidak ada threading , tidak ada konsumsi memori – ya ini adalah nodeway untuk melayani sisa API.
Saya satu lagi alasan untuk memilih Node.js untuk sebuah proyek baru adalah:
Dapat dilakukan murni berbasis cloud pengembangan
Saya telah menggunakan Cloud9 IDE untuk sementara waktu dan sekarang saya bisa't bayangkan tanpa itu, itu mencakup semua perkembangan masa hidup. Semua yang anda butuhkan adalah browser dan anda dapat kode kapan saja di mana saja pada perangkat apapun. Anda don't perlu untuk check-in kode di satu Komputer(seperti di rumah), maka kasir di komputer lain(seperti di tempat kerja).
Tentu saja, mungkin ada awan berbasis IDE untuk bahasa lain atau platform (Cloud 9 IDE ini menambahkan dukungan untuk bahasa lain juga), tapi menggunakan Cloud 9 untuk melakukan Node.js developement adalah benar-benar pengalaman hebat bagi saya.
Satu hal lagi simpul adalah kemampuan untuk membuat beberapa v8 instanes dari node menggunakan node's child process( childProcess.fork() masing-masing membutuhkan 10mb memori sesuai dokumen) on the fly, sehingga tidak mempengaruhi proses utama yang berjalan di server. Jadi pembongkaran latar belakang pekerjaan yang membutuhkan besar beban server menjadi anak's play dan kita dapat dengan mudah membunuh mereka sebagai dan bila diperlukan.
I've telah menggunakan node yang banyak dan dalam sebagian besar aplikasi yang kita bangun, memerlukan koneksi server pada saat yang sama sehingga lalu lintas jaringan yang berat. Kerangka kerja seperti Express.js dan Koajs (yang dihapus callback neraka) telah bekerja pada node lebih mudah.
Mengenakan asbes longjohns... Kemarin saya dengan judul Packt Publikasi, Reaktif Pemrograman dengan JavaScript. Ini isn't benar-benar sebuah Node.js-sentris judul; awal bab dimaksudkan untuk mencakup teori, dan kemudian kode-berat bab penutup praktek. Karena saya didn't pikir itu akan sesuai untuk gagal untuk memberikan pembaca sebuah webserver, Node.js tampak jauh pilihan yang jelas. Kasus itu ditutup sebelum itu bahkan dibuka. Saya bisa diberikan sangat cerah melihat dari pengalaman saya dengan Node.js. Bukannya aku jujur tentang poin baik dan poin buruk yang saya temui. Biarkan aku memiliki beberapa kutipan yang relevan di sini:
Peringatan: Node.js dan ekosistemnya hot--cukup panas untuk membakar anda dengan buruk! Ketika saya adalah seorang asisten guru matematika, salah satu non-jelas saran saya diberitahu untuk tidak memberitahu mahasiswa bahwa ada sesuatu yang "mudah". Alasannya adalah agak jelas dalam retrospeksi: jika anda memberitahu orang-orang sesuatu yang mudah, seseorang yang tidak melihat solusi mungkin akhirnya merasa (bahkan lebih) yang bodoh, karena tidak hanya mereka tidak mendapatkan cara untuk memecahkan masalah, tetapi masalahnya mereka terlalu bodoh untuk memahami lebih mudah! Ada gotchas yang tidak hanya mengganggu orang-orang yang datang dari Python / Django, yang segera ulang sumber jika anda mengubah apa-apa. Dengan Node.js, perilaku default adalah bahwa jika anda membuat satu perubahan, versi lama terus aktif sampai akhir waktu atau sampai anda secara manual menghentikan dan me-restart server. Ini perilaku yang tidak pantas tidak hanya mengganggu Pythonistas; hal ini juga mengganggu asli Node.js para pengguna yang menyediakan berbagai penyelesaian masalah. Yang StackOverflow pertanyaan "Auto-reload file di Node.js" sudah, pada saat penulisan ini, lebih dari 200 upvotes dan 19 jawaban; edit mengarahkan pengguna ke pengasuh script, node-supervisor, dengan homepage pada http://tinyurl.com/reactjs-node-supervisor. Masalah ini memberikan pengguna baru dengan kesempatan besar untuk merasa bodoh karena mereka pikir mereka telah tetap masalah, tapi lama, kereta perilaku adalah benar-benar tidak berubah. Dan sangat mudah untuk lupa untuk bangkit server; aku telah melakukannya beberapa kali. Dan pesan yang ingin saya berikan adalah, "Tidak, kau tidak bodoh karena perilaku ini Node.js sedikit punggung anda, itu hanya bahwa desainer Node.js melihat tidak ada alasan untuk menyediakan perilaku yang sesuai di sini. Jangan mencoba untuk mengatasi hal itu, mungkin mengambil sedikit bantuan dari node-pembimbing atau solusi lain, tapi tolong jangan pergi perasaan bahwa anda bodoh. Kau bukan satu-satunya masalah; masalah di Node.js's perilaku default." bagian Ini, setelah beberapa perdebatan, di kiri, justru karena aku don't ingin memberikan kesan "Itu mudah." Aku memotong tangan saya berulang kali ketika mendapatkan hal-hal untuk bekerja, dan aku tidak ingin untuk memuluskan kesulitan dan membuat anda siap untuk percaya bahwa mendapatkan Node.js dan ekosistemnya untuk berfungsi dengan baik adalah masalah sederhana dan jika hal itu tidak mudah bagi anda juga, anda tidak tahu apa yang anda lakukan. Jika anda tidak mengalami kesulitan menggunakan menjengkelkan Node.js, itu indah. Jika anda melakukannya, saya akan berharap bahwa anda tidak berjalan pergi merasa, "aku bodoh—pasti ada sesuatu yang salah dengan saya." Kau tidak bodoh jika anda mengalami kejutan berhadapan dengan Node.js. Itu bukan anda! Itu Node.js dan ekosistemnya! Lampiran, yang saya tidak benar-benar ingin setelah naik crescendo dalam bab-bab dan kesimpulan di atas, berbicara tentang apa yang saya mampu menemukan dalam ekosistem, dan memberikan solusi untuk tolol literalisme: database Lain yang sepertinya cocok, dan belum dapat ditukarkan, adalah sebuah server-side pelaksanaan HTML5 kunci-nilai. Pendekatan ini telah kardinal keuntungan dari API yang paling baik front-end developer memahami dengan cukup baik. Untuk hal itu, itu juga API yang paling tidak-begitu-baik front-end developer memahami dengan cukup baik. Tapi dengan node-localstorage paket, sementara kamus-sintaks akses tidak ditawarkan (yang ingin anda gunakan localStorage.setItem(key, value) atau localStorage.getItem(kunci), tidak localStorage[key]), full localStorage semantik yang dilaksanakan, termasuk default kuota 5MB—MENGAPA? Apakah server-side JavaScript developers perlu dilindungi dari diri mereka sendiri? Untuk client-side database kemampuan, kuota 5MB per website ini benar-benar murah dan berguna jumlah ruang bernapas untuk memungkinkan pengembang untuk bekerja dengan itu. Anda bisa mengatur jauh lebih rendah kuota dan masih menawarkan pengembang yang beragam perbaikan atas tertatih-tatih dengan cookie manajemen. Sebuah 5MB batas tidak meminjamkan sendiri sangat cepat untuk Big Data client-side pengolahan, tetapi ada benar-benar sangat murah hati penyisihan bahwa akal dapat digunakan oleh pengembang untuk melakukan banyak hal. Tapi di sisi lain, 5MB tidak terlalu besar porsi paling disk dibeli setiap saat, baru-baru ini, yang berarti bahwa jika anda memiliki sebuah situs web tidak setuju tentang apa yang merupakan penggunaan yang wajar dari ruang disk, atau beberapa situs yang cukup egois, itu tidak benar-benar biaya anda banyak dan anda berada dalam bahaya tenggelam hard drive kecuali anda hard drive sudah terlalu penuh. Mungkin kita akan lebih baik jika saldo yang sedikit kurang atau lebih sedikit, tapi secara keseluruhan itu adalah solusi yang layak untuk mengatasi intrinsik ketegangan untuk klien-sisi konteks. Namun, mungkin perlahan akan menunjukkan bahwa ketika anda adalah orang yang menulis kode untuk server anda, anda tidak memerlukan perlindungan tambahan dari membuat database anda lebih dari lumayan 5 MB dalam ukuran. Sebagian besar pengembang akan tidak memerlukan alat-alat yang bertindak sebagai pengasuh dan melindungi mereka dari menyimpan lebih dari 5MB data sisi server. Dan kuota 5MB itu adalah golden tindakan penyeimbangan pada sisi klien agak sedikit konyol pada Node.js server. (Dan, untuk database untuk beberapa pengguna, seperti yang tercakup dalam Lampiran ini, mungkin akan menunjuk keluar, sedikit menyakitkan, itu tidak 5MB per akun pengguna kecuali jika anda membuat database yang terpisah pada disk untuk setiap akun pengguna; itu 5MB dibagi antara semua account pengguna bersama-sama. Yang bisa mendapatkan menyakitkan jika anda pergi virus!) Dokumentasi yang menyatakan bahwa kuota disesuaikan, tapi email seminggu yang lalu untuk pengembang menanyakan bagaimana mengubah kuota yang belum terjawab, seperti StackOverflow pertanyaan yang menanyakan hal yang sama. Satu-satunya jawaban yang saya telah dapat menemukan ini di Github CoffeeScript sumber, di mana ia terdaftar sebagai opsional kedua argumen integer untuk konstruktor. Jadi itu cukup mudah, dan anda bisa menentukan kuota sama dengan disk atau partisi ukuran. Tapi selain porting fitur yang tidak masuk akal, alat ini penulis telah gagal sepenuhnya untuk mengikuti sangat standar konvensi menafsirkan 0, yang berarti "terbatas" untuk sebuah variabel atau fungsi mana integer adalah untuk menentukan batas maksimum untuk beberapa penggunaan sumber daya. Hal terbaik yang harus dilakukan dengan ini misfeature adalah mungkin untuk menentukan bahwa kuota Infinity:
if (typeof localStorage === 'undefined' || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage(__dirname + '/localStorage',
Infinity);
}
Menukar dua komentar:
orang-Orang yang sia-sia menembak diri di kaki terus-menerus menggunakan JavaScript sebagai keseluruhan, dan merupakan bagian dari JavaScript yang dibuat terhormat bahasa Douglas Crockford mengatakan pada intinya, "JavaScript sebagai bahasa memiliki beberapa benar-benar baik bagian-bagian, dan beberapa benar-benar bagian yang buruk. Berikut ini adalah bagian-bagian yang baik. Hanya lupa bahwa apa-apa lagi di sana." Mungkin panas Node.js ekosistem akan tumbuh sendiri "Douglas Crockford," siapa yang akan mengatakan, "Node.js ekosistem adalah coding Wild West, tapi ada beberapa permata yang nyata harus ditemukan. Berikut adalah roadmap. Di sini adalah tempat untuk menghindari di hampir semua biaya. Berikut ini adalah tempat-tempat dengan beberapa terkaya paydirt dapat ditemukan di SETIAP bahasa atau lingkungan." Mungkin orang lain dapat mengambil kata-kata tersebut sebagai sebuah tantangan, dan mengikuti Crockford memimpin dan menulis "bagian yang baik" dan / atau "bagian" untuk Node.js dan ekosistemnya. Saya akan membeli salinan! Dan mengingat tingkat antusiasme dan semata-mata bekerja-jam pada semua proyek, dapat dibenarkan dalam setahun, atau dua, atau tiga, tajam marah komentar tentang dewasa ekosistem yang dibuat pada saat penulisan ini. Itu benar-benar masuk akal dalam lima tahun untuk mengatakan, "tahun 2015 Node.js ekosistem memiliki beberapa ladang ranjau. 2020 Node.js ekosistem memiliki beberapa surga."
Jika aplikasi anda terutama tethers web api, atau lainnya io saluran, memberi atau mengambil sebuah antarmuka pengguna, node.js mungkin yang adil yang sempurna untuk anda, terutama jika anda ingin memeras paling skalabilitas, atau, jika bahasa utama anda dalam hidup adalah javascript (atau javascript transpilers macam). Jika anda membangun microservices, node.js ini juga oke. Node.js ini juga cocok untuk setiap proyek yang lebih kecil atau sederhana.
Its titik penjualan utama adalah memungkinkan depan-enders mengambil tanggung jawab untuk back-end hal-hal yang bukan khas membagi. Lain yang dibenarkan adalah jika tenaga kerja anda adalah javascript yang berorientasi untuk mulai dengan.
Melampaui titik tertentu namun, anda tidak dapat skala kode anda tanpa mengerikan hacks untuk memaksa modularitas, mudah dibaca dan flow control. Beberapa orang-orang seperti mereka hacks meskipun, terutama yang berasal dari-event javascript latar belakang, mereka tampak akrab atau dimaafkan.
Khususnya, ketika kebutuhan aplikasi anda untuk melakukan sinkron mengalir, anda mulai perdarahan lebih dari setengah matang solusi yang memperlambat anda jauh dalam hal pengembangan proses. Jika anda memiliki komputasi intensif bagian dalam aplikasi anda, melangkah dengan hati-hati memilih (hanya) node.js. Mungkin http://koajs.com/ atau hal baru lainnya meringankan mereka awalnya berduri aspek, dibandingkan dengan ketika saya awalnya digunakan node.js atau menulis ini.
Saya dapat berbagi beberapa poin di mana&mengapa menggunakan node js.
Kekurangan:-
Kesimpulan:- Nodejs terbaik untuk menggunakan untuk sederhana dan aplikasi real time..jika anda sangat besar logika bisnis yang kompleks dan fungsi yang baik tidak harus menggunakan nodejs. Jika anda ingin membangun sebuah aplikasi bersama dengan chatting dan kolaboratif fungsi.. node dapat digunakan di bagian-bagian tertentu dan tetap harus pergi dengan kenyamanan anda teknologi.
Node lebih besar untuk cepat prototipe tapi aku'a tidak pernah menggunakannya lagi untuk sesuatu yang kompleks. Saya menghabiskan 20 tahun mengembangkan hubungan dengan compiler dan aku yakin nona itu.
Simpul ini sangat menyakitkan untuk memelihara kode yang anda ingin't berkunjung untuk sementara. Jenis informasi dan waktu kompilasi deteksi kesalahan adalah HAL yang BAIK. Mengapa membuang semua itu? Untuk apa? Dan dang, ketika sesuatu yang tidak pergi ke selatan tumpukan jejak cukup sering benar-benar tidak berguna.