Ini sangat kuat dalam menangani satu ton file I / O dan saya berharap untuk menangani satu ton komunikasi jaringan dengan baik juga. Tampaknya sangat populer untuk aplikasi berbasis soket. Hal penting yang perlu diingat adalah bahwa jika kebutuhan Anda tidak terpenuhi oleh perpustakaan yang ada (ada banyak) Anda mungkin perlu menyelam ke beberapa C yang dapat terikat dengan perintah JS. Anda juga dapat menelurkan proses Node tambahan tetapi saya curiga melakukan banyak hal yang dapat dikenakan pajak (saya berasumsi - mungkin salah - ada contoh V8 yang dihasilkan untuk masing-masing).
JS adalah single-threaded dan blocking, artinya tidak ada yang bisa dieksekusi sampai pemanggilan fungsi selesai. Ini adalah fitur yang diinginkan dari JS, pada dasarnya menghilangkan semua masalah threading dan antrian dari tangan Anda. JS tidak menghentikan hal-hal C / C ++ dari berjalan dengan cara yang lebih multi-threaded di bawah kap sehingga peran JS benar-benar lebih arsitektur / messenger. Jika Anda memproses gambar, Anda tidak akan ingin mengatasinya dengan perintah JavaScript yang sinkron karena semua hal lain di aplikasi atau server Anda akan diblokir sampai selesai. Idenya adalah bahwa Anda meminta gambar untuk diproses oleh fungsionalitas C / C ++ terikat, dan kemudian menanggapi peristiwa 'selesai' ketika gambar selesai diproses.
Ini mensyaratkan bahwa JS dalam aplikasi Node.js apa pun harus banyak didorong oleh event dan callback atau kemungkinan kinerjanya sangat buruk. Jadi Anda tidak akan melihat banyak pemanggilan metode di Node yang tidak mendapatkan fungsi untuk digunakan nanti. Satu hal yang menjadi sangat jelas di Node adalah Anda berada dalam dunia yang jelek jika Anda tidak menemukan cara untuk menangani piramida callback. misalnya
//event CBs are more DOM-style than Node style and this isn't built-in Node file I/O
//keeping it simple and quick since I'll just get Node stuff wrong from memory
file.get('someFile.txt', function(e){
e.fileObj.find('some snippet', function(e){
someFinalCallBackHandler( e.snippetLocations );
} );
} );
Untungnya ada banyak alat dan contoh di luar sana untuk menangani ini dengan lebih baik. Sebagian besar cenderung berputar di sekitar mekanisme janji dan hanya merantai serangkaian fungsi yang dimaksudkan untuk menanggapi masing-masing negara panggilan balik dalam array yang melakukan hal-hal piramida jelek untuk Anda di bawah tenda.
Secara pribadi, saya sangat suka mendapatkan JS di level tinggi dan C / C ++ lebih dekat ke chrome. Ini adalah kombo utama dan itu mengilhami saya untuk mulai belajar C. Dan jangan biarkan kurangnya potensi perpustakaan membuat Anda takut sampai Anda melakukan penelitian. Perpustakaan node sedang diproduksi dengan kecepatan yang sangat cepat dan jatuh tempo dengan sangat cepat. Jika Anda tidak melakukan sesuatu, peluang yang sangat tidak biasa adalah baik.
Perbedaan terbesar dari Rails, adalah bahwa JS tidak pernah berada di rails seperti sebelumnya. Kami cenderung kode untuk dapat memilikinya tetapi Anda ingin sangat cepat sehingga ada tali untuk menggantung diri dengan faktor dan arsitektur telah cukup DIY di JS sampai beberapa tahun terakhir. Saya menyebutnya kebebasan, tetapi saya menyadari itu tidak terlihat ideal bagi banyak devs.
Juga, Anda tidak akan pernah memiliki masalah "permata" di Node.js karena Anda mencoba menginstal pada sesuatu selain Mac. Pengembang web sisi klien membenci masalah ketergantungan dan dari situlah banyak inti Node berasal. Jika itu tidak berhasil di luar kotak dalam 5 menit atau kurang di setiap platform populer, kami biasanya meremasnya dan melemparkannya. Saya belum menemukan modul populer yang mengharuskan saya melakukan sesuatu yang istimewa untuk membuatnya bekerja. Sistem paket, sangat baik.
Tetapi untuk menjawab pertanyaan inti Anda secara lebih eksplisit / ringkas: Apakah baik dengan proses latar belakang?
Ya, Node pada dasarnya IS proses latar belakang dengan sarana mengemudi aplikasi melalui acara dan panggilan balik.