Rumah >hujung hadapan web >tutorial js >Membuat pelayan HTTP di Node.js

Membuat pelayan HTTP di Node.js

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-25 14:27:09162semak imbas

Bina pelayan http node.js

Creating a HTTP Server in Node.js

Artikel sebelumnya memperkenalkan program Node.js yang paling asas. Walaupun program "Hello World" adalah baik, Node.js lebih biasa digunakan untuk membuat aplikasi pelayan yang sangat berskala. Artikel ini memperkenalkan pelayan HTTP yang mudah dibina di Node.js.

mata utama

    node.js membolehkan untuk membuat pelayan HTTP yang mudah, langkah utama adalah untuk membuat fail baru, masukkan kod yang sesuai dan jalankan pelayan. Pelayan boleh diakses melalui penyemak imbas web melalui localhost atau alamat IP mesin.
  • Fungsi pelayan
  • dibina di atas kaedah
  • (memuatkan modul) dan kaedah require() modul http (membuat pelayan dan melaksanakan fungsi panggil balik untuk setiap permintaan baru). Fungsi panggil balik menggunakan dua parameter (permintaan dan tindak balas) untuk memproses permintaan klien dan mengembalikan data. createServer() Server
  • menggunakan kaedah
  • untuk menghantar kod status HTTP dan tajuk tindak balas kembali ke klien, menulis ke halaman HTML menggunakan response.writeHead(), dan menamatkan respons menggunakan response.write(). Pelayan menggunakan kaedah response.end() untuk mendengar sambungan masuk. Pada masa ini, pelayan hanya boleh mengembalikan satu halaman HTML tunggal, dan peningkatan masa depan mungkin termasuk membaca laman web dari sistem fail dan mengintegrasikan pengesahan HTTP. listen()

menjalankan pelayan

Pertama, buat fail baru bernama "web_server.js". Masukkan kod berikut ke dalam fail dan simpan:

<code class="language-javascript">var http = require("http");
var server = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("<!DOCTYPE html>");
  response.write("");
  response.write("");
  response.write("<title>Hello World Page</title>");
  response.write("");
  response.write("");
  response.write("Hello World!");
  response.write("");
  response.write("");
  response.end();
});

server.listen(80);
console.log("Server is listening");</code>
Untuk memulakan pelayan, ketik arahan berikut. Sekiranya semuanya berfungsi dengan baik, anda akan melihat mesej yang menunjukkan bahawa pelayan sedang mendengar. Perhatikan bahawa pelayan sampel cuba mengikat ke port 80 (port HTTP standard). Jika pelabuhan ini telah digunakan atau terhad pada mesin anda, anda akan menghadapi ralat.

<code class="language-bash">node web_server.js</code>
Langkah seterusnya ialah menggunakan penyemak imbas web untuk menyambung ke pelayan. Lancarkan penyemak imbas pilihan anda dan mengarahkannya ke mana -mana pautan berikut. Dalam istilah rangkaian, Localhost (dan alamat IPnya 127.0.0.1) merujuk kepada mesin yang sedang anda gunakan. Penyemak imbas anda harus memaparkan "Hello World!".

<code>http://localhost
http://127.0.0.1</code>

Bagaimana pelayan berfungsi

Sekarang pelayan sedang berjalan dan berjalan, sudah tiba masanya untuk menganalisis kod tersebut. Perkara pertama yang perlu diperhatikan ialah panggilan require() pada baris 1. Node.js menyediakan sistem modul mudah dengan komuniti pemaju yang besar. Program Node.js boleh menggunakan kaedah require() untuk memuatkan modul tunggal. Walaupun banyak modul perlu dimuat turun, beberapa modul (mis. ) dimasukkan ke dalam pemasangan Node.js. Pada baris 2, gunakan kaedah http modul http untuk membuat pelayan HTTP. Seperti kebanyakan fungsi Node.js, createServer() mengambil fungsi panggilan balik sebagai hujah. Fungsi panggil balik ini dilaksanakan setiap kali pelayan menerima permintaan baru. Fungsi panggil balik menerima dua parameter: permintaan dan tindak balas. Objek Permintaan mengandungi maklumat mengenai permintaan klien, seperti URL, tajuk HTTP, dll. Begitu juga, objek tindak balas digunakan untuk mengembalikan data kepada pelanggan. Fungsi panggil balik pertama memanggil kaedah createServer(). Kaedah ini menghantar kod status HTTP dan satu set tajuk tindak balas kembali kepada pelanggan. Kod status digunakan untuk menunjukkan hasil permintaan. Sebagai contoh, semua orang telah mengalami ralat 404 sebelum ini, menunjukkan bahawa halaman tidak dapat dijumpai. Pelayan sampel mengembalikan kod 200, menunjukkan kejayaan. Sebagai tambahan kepada kod status, pelayan mengembalikan banyak tajuk HTTP yang menentukan parameter respons. Jika anda tidak menentukan tajuk, Node.js akan menghantarnya secara tersirat untuk anda. Pelayan sampel hanya menentukan header response.writeHead(). Header khusus ini mentakrifkan jenis MIME respons. Untuk respons HTML, jenis MIME ialah "Teks/HTML". Seterusnya, pelayan melakukan beberapa panggilan ke Content-Type. Panggilan ini digunakan untuk menulis ke halaman HTML. Secara lalai, pengekodan aksara UTF-8 digunakan. Secara teknikal, semua panggilan ini boleh digabungkan ke dalam satu panggilan untuk peningkatan prestasi. Walau bagaimanapun, untuk contoh yang mudah, prestasi dikorbankan untuk kebolehbacaan kod. Selepas menulis ke halaman HTML, kaedah response.write() akan dipanggil. Dengan memanggil kaedah ini, kami memberitahu pelayan bahawa tajuk dan badan respons telah dihantar dan permintaan itu telah selesai. Server sampel panggilan response.end() tanpa parameter. Walau bagaimanapun, jika anda hanya perlu menelefon sekali, end() juga boleh dipanggil seperti end(). Panggilan write() pada baris 15 menyebabkan pelayan mengikat ke port dan mendengar sambungan masuk. Komputer mempunyai beribu -ribu pelabuhan yang bertindak sebagai titik akhir komunikasi. Untuk menyambung ke pelayan, pelanggan mesti tahu dengan tepat port mana pelayan sedang mendengar. Pelabuhan dikenal pasti oleh nombor port, dan pelayan HTTP biasanya mendengar port 80. listen()

Kesimpulan

Artikel ini memperkenalkan pelayan HTTP yang sangat asas. Dalam keadaan semasa, pelayan hanya boleh mengembalikan halaman HTML tunggal. Dalam beberapa minggu akan datang, kami akan menyelam ke dunia Node.js, meneroka ciri -ciri lain seperti membaca laman web dari sistem fail dan mengintegrasikan pengesahan HTTP.

FAQ untuk membuat pelayan HTTP (FAQ)

Apakah tujuan kaedah 'http.createserver ()' dalam node.js?

Kaedah

http.createServer() adalah fungsi terbina dalam dalam node.js untuk membuat contoh baru pelayan HTTP. Pelayan ini mendengar permintaan masuk dan menghantar respons. Ia memerlukan fungsi requestListener sebagai hujah, yang secara automatik ditambah pada acara "Permintaan". Fungsi ini dipanggil setiap kali pelayan menerima permintaan. Fungsi requestListener mempunyai dua parameter: request (contoh http.IncomingMessage) dan response (contoh http.ServerResponse).

Bagaimana kaedah 'response.writead ()' dalam kerja node.js?

Kaedah

response.writeHead() adalah fungsi dalam node.js yang menghantar tajuk respons kepada permintaan. Kaedah ini menerima dua parameter: kod status dan objek biasa yang mewakili tajuk tindak balas. Kod status adalah kod status HTTP 3-bit, dan parameter kedua adalah objek di mana setiap pasangan nilai utama mewakili nama header dan nilainya. Kaedah ini mesti dipanggil sebelum response.end() dan hanya boleh dipanggil sekali setiap tindak balas.

Apakah perbezaan antara 'menulis' dan 'menulis' dalam node.js?

Kaedah

dan write dalam writeHead node.js digunakan untuk menghantar respons pelayan. Kaedah writeHead digunakan untuk menghantar kod status HTTP dan satu set tajuk tindak balas, manakala kaedah write digunakan untuk menghantar badan respons kepada pelanggan. Kaedah writeHead hendaklah dipanggil sebelum write, kedua -duanya harus dipanggil sebelum end, dan end menandakan pelayan bahawa semua tajuk dan badan respons telah dihantar.

Bagaimana menggunakan pakej 'node-http-server' dalam node.js?

node-http-server adalah http atau pelayan https yang mudah dan mudah untuk konfigurasi untuk node.js. Untuk menggunakannya, anda perlu memasangnya menggunakan NPM (Pengurus Pakej Node) dengan menjalankan npm install node-http-server. Selepas pemasangan, anda boleh memperkenalkannya dalam fail Node.js dan mulakan pelayan menggunakan kaedah deploy nya. Kaedah deploy mengambil objek konfigurasi sebagai parameter di mana anda boleh menentukan pilihan pelayan seperti port, root, dan serverIndex.

Bagaimana menangani permintaan dan respons HTTP dalam node.js?

Dalam node.js, anda boleh menggunakan modul http untuk mengendalikan permintaan dan respons HTTP. Pertama, anda perlu membuat pelayan HTTP menggunakan kaedah http.createServer(). Kaedah ini mengambil fungsi panggil balik sebagai parameter, yang dilaksanakan setiap kali pelayan menerima permintaan. Fungsi panggil balik mempunyai dua parameter: request dan response. Objek request boleh digunakan untuk mendapatkan maklumat mengenai permintaan klien, seperti URL, tajuk HTTP, dan muatan. Objek response digunakan untuk menghantar respons kepada pelanggan. Anda boleh menetapkan kod status HTTP dan header menggunakan kaedah response.writeHead(), menulis badan tindak balas menggunakan kaedah response.write(), dan mengakhiri respons menggunakan kaedah response.end().

Atas ialah kandungan terperinci Membuat pelayan HTTP di Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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