Perubahan dalam persekitaran telah membawa lonjakan teknologi yang hebat, membawa peluang dan cabaran pada masa yang sama. Memandangkan saya belum lagi mempelajari js, saya tidak mempunyai pilihan selain meletakkannya di rak dan mempelajarinya bersama-sama. (>﹏<)
1. Baca dan baca dahulu
Dari awal lagi, saya membaca "Pengenalan Node.js dalam Bahasa Mudah dan Dalam" tanpa teragak-agak, dan saya keliru selepas membacanya, saya menyedari bahawa buku ini memerlukan tahap asas tertentu. Saya mencari di Internet dan menemui 41 halaman "Pengenalan kepada Nod" dan belajar membina aplikasi Web. Dan selepas menyegarkan rasa pencapaian saya, saya membaca "The Great Node.js". Sekarang saya akan membaca "Pengenalan mendalam kepada node.js" selepas membaca buku ini.
2. Sediakan persekitaran dan jalankan rutin pada git (ralat dilaporkan 3 kali)
Selepas memuat turun msi dari tapak web rasmi, pergi ke seterusnya. Apabila memasukkan arahan npm install, ralat "npm ERR! not found: git" dilaporkan. Sebabnya ialah komputer baru tidak mengikut git.
Apabila memasang pakej pergantungan luaran, ralat "gyp ERR! configure error" dilaporkan Sebabnya ialah persekitaran Python tidak wujud. Dan pakej pergantungan ini hanya boleh dipasang di bawah versi yang lebih rendah. Ralat terakhir yang dilaporkan ialah "MSBUILD: ralat MSB3428: Gagal memuatkan komponen Visual C "VCBuild.exe" Ralat masih dilaporkan selepas memasang .net framework 2.0 SDK dan mvs2005. Berputus asa.
3. Aplikasi web pertama
Selepas menjalankan "Hello World", mula menulis aplikasi web sepenuhnya berdasarkan Node. Pertama, anda perlu memulakan modul pelayan Objek yang dikembalikan oleh fungsi createServer dalam modul http mempunyai kaedah listen([PORT]) untuk mendengar port. Parameter fungsi ini sangat pelik, ia adalah definisi fungsi. Dalam JavaScript, fungsi boleh menerima parameter sebagai fungsi lain Fungsi parameter dipanggil fungsi tanpa nama. Sebab untuk menggunakan kaedah ini ialah nod menggunakan panggilan balik dipacu peristiwa. Apabila pelayan menerima permintaan dalam satu proses, ia akan memanggil fungsi ini untuk mengendalikan permintaan. Apabila peristiwa yang sepadan berlaku, fungsi createServer memanggil fungsi ini untuk memanggil semula.
Selepas selesai menerima permintaan http, kami akan memproses permintaan tersebut. Pertama, kami secara abstrak mencadangkan URL yang berbeza dan parameter GET dan POST. Dua URL modul dalaman (menghuraikan URL) dan Rentetan Pertanyaan (memproses rentetan pertanyaan) digunakan di sini. Dan tambahkan modul penghala melalui suntikan kebergantungan. Seterusnya, modul untuk memproses permintaan perlu dilengkapkan untuk melengkapkan penghalaan. Semua permintaan pertama kali diluluskan antara modul melalui objek (pemegang), dan pengendali boleh bertindak balas. Secara umumnya, biarkan pengendali permintaan memulangkan terus (return()) maklumat yang ingin mereka paparkan kepada pengguna melalui fungsi onRequest. Walau bagaimanapun, ia sangat memakan masa untuk melaksanakan operasi menyekat, jadi kita perlu menggunakan operasi tidak menyekat. Gunakan panggilan balik dengan menghantar fungsi sebagai argumen kepada fungsi lain yang mengambil masa untuk diproses. Daripada menghantar kandungan ke pelayan, kali ini kami "lulus" kandungan dari pelayan. Iaitu untuk menghantar objek tindak balas (diperolehi daripada fungsi panggil balik pelayan onRequest()) sebagai parameter fungsi kepada pengendali melalui penghalaan. Dengan cara ini, pengendali boleh memanggil fungsi pada objek.
Kemudian teruskan ke langkah pemprosesan, muat naik imej melalui borang, di sini pakej pergantungan luaran yang menggerunkan digunakan untuk menerima imej. Modul ini digunakan untuk memproses borang dan memuat naik fail. Mula-mula gunakan var form = new formidable.IncomingForm(); Kaedah menghuraikan objek ini boleh menghuraikan dan memproses data bentuk. Kami hanya menyimpan fail. Modul fs digunakan untuk menyimpan fail. Tentukan lokasi simpan melalui kaedah nama semula dan gunakan kaedah penyegerakan renameSync() untuk menjadikan tingkah laku menyimpan fail mendahului tingkah laku paparan gambar.
Memaparkan gambar adalah sangat mudah Baca fail melalui kaedah readFile fs, dan gunakan response.write(fail, "binary") dalam fungsi panggil baliknya untuk memaparkan gambar dalam penyemak imbas.
Untuk meringkaskan: Melalui rutin ini, kami mempelajari tentang ciri dalam node.js, seperti benang tunggal, tak segerak, dipacu peristiwa, dsb. Beberapa konsep abstrak ini juga ditunjukkan melalui rutin, tetapi perlu difahami secara mendalam. Belajar melalui rutin bermakna anda perlu mencari maklumat apabila anda tidak faham Kaedah pembelajaran ini juga merupakan kaedah Input-Orang-Output yang baik.