Rumah >hujung hadapan web >tutorial js >Nota bacaan node.js yang hebat - summary_node.js pembelajaran nod

Nota bacaan node.js yang hebat - summary_node.js pembelajaran nod

WBOY
WBOYasal
2016-05-16 16:25:091519semak imbas

Kerja projek minggu ini agak berselerak (sepatutnya dikatakan selalu seperti ini), jadi ringkasan akan dibahagikan kepada dua bahagian mengikut situasi yang berbeza~ Artikel ini merekodkan ringkasan pembelajaran tentang nod, dan artikel seterusnya adalah mengenai web yang dipelajari semasa projek Pengetahuan Front-end.

1.HTTP

Modul HTTP nod telah didedahkan dalam artikel pertama Di sini kita akan mempelajari API yang muncul dalam beberapa rutin.

Salin kod Kod adalah seperti berikut:

var qs = memerlukan('querystring');

memerlukan('http').createServer(function(req, res){
Jika('/' == req.url){
          res.writeHead(200, {'Content-Type': 'text/html'});
res.end([
              '

',
'

Borang saya

',
              '
',
                 '',
'

Siapa nama anda?

',
              '',
'

Serah

',
              '',
].sertai(''));
}else if('/url' == req.url && 'POST' == req.method){
        var body = '';
          req.on('data', function(chunk){
               badan = bongkah;
});
          req.on('end', function(){
               res.writeHead(200, {'Content-Type': 'text/html'});
                res.end('Nama anda ialah ' qs.parse(body).name '

');
});
}lain{
           res.writeHead(404);
          res.end('not found');
}
}).dengar(3000);

Parameter bagi fungsi creatServer([requestListener]) ialah fungsi panggil balik(req, res), dengan req (request) ialah instance http.IncomingMessage, dan res (response) ialah instance dari http.ServerRrsponse .

Kami menggunakan res url, rentetan kaedah dan dua kaedah writeHead dan end. Seperti namanya, url ialah URL yang merekodkan HTTP (semuanya selepas nama hos), dan kaedah ialah kaedah untuk merekodkan respons HTTP.

writeHead(statusCode, [reasonPhrase], [headers]) digunakan untuk menghantar maklumat pengepala respons http Kaedah ini hanya dipanggil sekali apabila mesej tiba dan mesti dipanggil sebelum kaedah tamat. Jika anda melakukan ini dan memanggil kaedah write(chunk, [encoding]) atau end([data], [encoding]) dahulu, sistem akan secara automatik merekodkan kandungan pengepala respons yang tidak kelihatan dan tidak menentu (pendek kata, buruk). panggil kaedah writeHead.

Kaedah tamat akan menghantar mesej kepada pelayan untuk menunjukkan bahawa maklumat respons telah dihantar, jadi kaedah ini mesti dipanggil setiap kali respons dihantar. Apabila parameternya mempunyai kandungan (seperti rutin), kaedah ini bersamaan dengan memanggil kaedah tulis('kandungan', [pengekodan]) dan tamat pada masa yang sama. Ini agak mudah.

Seterusnya, rutin menggunakan req.on untuk mendengar acara dan mengikatnya dengan req(mesej). Prototaipnya ialah Emitter.on(event, listener), req ialah objek yang menjana acara, dan dalam fungsi mendengar, ini menunjuk kepada objek EventEmitter yang dikaitkan dengan fungsi mendengar semasa.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn