Minggu ini, proyek ini selesai berserakan (harus dikatakan bahwa selalu seperti ini). Ringkasan harus dibuka ganda berdasarkan situasi yang berbeda ~ Artikel ini mencatat ringkasan pembelajaran tentang Node, dan artikel berikutnya adalah pengetahuan tentang front-end web yang dipelajari dari proyek.
1. Http
Modul HTTP dari node diekspos pada artikel pertama. Di sini kita akan mempelajari API yang muncul dalam beberapa rutinitas.
Salinan kode adalah sebagai berikut:
var qs = membutuhkan ('querystring');
membutuhkan ('http'). createServer (function (req, res) {
if ('/' == req.url) {
res.writeHead (200, {'tipe konten': 'Text/html'});
res.end ([[
'<Form Method = "Post" Action = "/url">',
'<h1> formulir saya </h1>',
'<fieldset>',
'<LABEL> Informasi Pribadi </LABEL>',
'<p> Siapa namamu? </p>',
'<input type = "text" name = "name">',
'<p> <button> Kirim </tutton> </p>',
'</form>',
].bergabung(''));
} lain if ('/url' == req.url && 'pos' == req.method) {
var body = '';
req.on ('data', function (chunk) {
tubuh += chunk;
});
req.on ('end', function () {
res.writeHead (200, {'tipe konten': 'Text/html'});
res.end ('<b> Nama Anda <b>' + qs.parse (body) .name + '</b> </p>');
});
}kalau tidak{
res.writeHead (404);
res.end ('tidak ditemukan');
}
}). Dengarkan (3000);
Parameter fungsi CreatServer ([RequestListener]) adalah fungsi fungsi callback (Req, res), di mana Req (permintaan permintaan) adalah instance dari http.incomingmessage, dan res (respons) adalah instance dari http.serverrsponse.
Kami menggunakan URL, Metode String res dan dua metode WriteHead dan End. Seperti namanya, URL adalah URL yang mencatat HTTP (semuanya setelah nama host), dan metode adalah metode yang mencatat respons HTTP.
WriteHead (StatusCode, [ReasonPhrase], [header]) digunakan untuk mengirim informasi header respons HTTP. Metode ini dipanggil hanya sekali ketika pesan tiba dan harus dipanggil sebelum metode seperti akhir. Jika Anda melakukannya sebagai gantinya, hubungi metode tulis (chunk, [encoding]) atau end ([data], [encoding]) terlebih dahulu, sistem akan secara otomatis merekam konten header respons (tidak terlihat, tidak dapat diubah) dan hubungi metode WriteHead.
Metode akhir akan mengirim pesan ke server untuk menunjukkan bahwa respons dikirim, jadi metode ini harus dipanggil setiap kali respons dikirim. Ketika parameternya memiliki konten (seperti rutinitas), metode ini setara dengan memanggil keduanya menulis ('konten', [encoding]) dan metode akhir. Ini cukup nyaman.
Selanjutnya, rutinitas menggunakan req.on untuk mendengarkan acara dan mengikat ke req (pesan). Prototipenya adalah emitter.on (event, listener), Req adalah objek yang menghasilkan peristiwa, dan dalam fungsi mendengarkan ini menunjuk ke objek EventeMitter yang terkait dengan fungsi mendengarkan saat ini.