Node.js HTTP Module


โมดูล HTTP ในตัว

Node.js มีโมดูลในตัวที่เรียกว่า HTTP ซึ่งช่วยให้ Node.js สามารถถ่ายโอนข้อมูลผ่าน Hyper Text Transfer Protocol (HTTP)

หากต้องการรวมโมดูล HTTP ให้ใช้ require()วิธีการ:

var http = require('http');

Node.js เป็นเว็บเซิร์ฟเวอร์

โมดูล HTTP สามารถสร้างเซิร์ฟเวอร์ HTTP ที่รับฟังพอร์ตของเซิร์ฟเวอร์และให้การตอบสนองกลับไปยังไคลเอนต์

ใช้createServer()วิธีการเพื่อสร้างเซิร์ฟเวอร์ HTTP:

ตัวอย่าง

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

ฟังก์ชันที่ส่งผ่านไปยังhttp.createServer() เมธอด จะถูกดำเนินการเมื่อมีคนพยายามเข้าถึงคอมพิวเตอร์บนพอร์ต 8080

บันทึกรหัสด้านบนในไฟล์ชื่อ "demo_http.js" และเริ่มไฟล์:

เริ่มต้น demo_http.js:

C:\Users\Your Name>node demo_http.js

หากคุณทำตามขั้นตอนเดียวกันบนคอมพิวเตอร์ของคุณ คุณจะเห็นผลลัพธ์เช่นเดียวกับตัวอย่าง: http://localhost:8080



เพิ่ม HTTP Header

หากการตอบกลับจากเซิร์ฟเวอร์ HTTP ควรแสดงเป็น HTML คุณควรรวมส่วนหัว HTTP ที่มีประเภทเนื้อหาที่ถูกต้อง:

ตัวอย่าง

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

อาร์กิวเมนต์แรกของres.writeHead()เมธอดคือรหัสสถานะ 200 หมายความว่าทุกอย่างเรียบร้อย อาร์กิวเมนต์ที่สองคืออ็อบเจ็กต์ที่มีส่วนหัวของการตอบสนอง


อ่านสตริงการสืบค้น

ฟังก์ชันที่ส่งผ่านไปhttp.createServer() ยังมีreqอาร์กิวเมนต์ที่แสดงถึงคำขอจากลูกค้า เป็นวัตถุ (http.IncomingMessage วัตถุ)

วัตถุนี้มีคุณสมบัติที่เรียกว่า "url" ซึ่งถือเป็นส่วนหนึ่งของ url ที่มาหลังชื่อโดเมน:

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

บันทึกรหัสด้านบนในไฟล์ชื่อ "demo_http_url.js" และเริ่มไฟล์:

เริ่มต้น demo_http_url.js:

C:\Users\Your Name>node demo_http_url.js

หากคุณทำตามขั้นตอนเดียวกันบนคอมพิวเตอร์ของคุณ คุณควรเห็นผลลัพธ์สองรายการที่แตกต่างกันเมื่อเปิดที่อยู่ทั้งสองนี้:

http://localhost:8080/summer

จะให้ผลลัพธ์นี้:

/summer

http://localhost:8080/winter

จะให้ผลลัพธ์นี้:

/winter

แยกสตริงการสืบค้น

มีโมดูลในตัวเพื่อแยกสตริงการสืบค้นออกเป็นส่วนๆ ที่อ่านได้ง่าย เช่น โมดูล URL

ตัวอย่าง

แยกสตริงการสืบค้นออกเป็นส่วนที่สามารถอ่านได้:

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

บันทึกรหัสด้านบนในไฟล์ชื่อ "demo_querystring.js" และเริ่มไฟล์:

เริ่มต้น demo_querystring.js:

C:\Users\Your Name>node demo_querystring.js

ที่อยู่:

จะให้ผลลัพธ์นี้:

2017 July

อ่านเพิ่มเติมเกี่ยวกับโมดูล URL ในบทโมดูล URL ของ Node.js