Setakat ini, pelayan yang kami bina tidak mempunyai kegunaan praktikal Seterusnya, kami akan mula melaksanakan beberapa fungsi yang sebenarnya berguna.
Apa yang kami mahu lakukan ialah: pengguna memilih fail, memuat naik fail dan kemudian melihat fail yang dimuat naik dalam penyemak imbas.
Mula-mula kami memerlukan kawasan teks untuk pengguna memasukkan kandungan, dan kemudian menyerahkannya kepada pelayan melalui permintaan POST.
Kami menambah kod dalam pengendali acara mula dan mengubah suai requestHandlers.js seperti berikut:
Anda boleh melihat kesannya dengan melawati http://localhost:8888/start dalam penyemak imbas anda.
Seterusnya kita perlu melaksanakan pengendali permintaan /upload untuk mencetuskan permintaan POST apabila pengguna menyerahkan borang.
Untuk menjadikan keseluruhan proses tidak disekat, Node.js akan membahagikan data POST kepada banyak ketulan data kecil, dan kemudian menghantar ketulan data kecil ini kepada fungsi panggil balik dengan mencetuskan peristiwa tertentu. Peristiwa khusus di sini termasuk peristiwa data (menunjukkan bahawa blok data kecil baharu telah tiba) dan acara tamat (menunjukkan bahawa semua data telah diterima).
Kami melakukan ini dengan mendaftarkan pendengar pada objek permintaan. Objek permintaan di sini dihantar ke fungsi panggil balik onRequest setiap kali permintaan HTTP diterima.
Kami meletakkan kod dalam pelayan dan mengubah suai server.js seperti berikut:
Kod di atas melakukan tiga perkara: Pertama, kami menetapkan format pengekodan data yang diterima kepada UTF-8, dan kemudian mendaftarkan pendengar untuk acara "data" untuk mengumpul setiap blok data baharu yang diterima, dan Berikannya kepada pembolehubah postData Akhir sekali, kami mengalihkan panggilan penghalaan permintaan ke pengendali acara akhir untuk memastikan ia hanya menyala apabila semua data telah diterima, dan hanya sekali. Kami juga menghantar data POST ke penghala permintaan, kerana data ini akan digunakan oleh pengendali permintaan.
Seterusnya, pada halaman /upload, kandungan yang dimasukkan oleh pengguna dipaparkan
Jom tukar router.js:
'
'