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
หากคุณทำตามขั้นตอนเดียวกันบนคอมพิวเตอร์ของคุณ คุณควรเห็นผลลัพธ์สองรายการที่แตกต่างกันเมื่อเปิดที่อยู่ทั้งสองนี้:
จะให้ผลลัพธ์นี้:
/summer
จะให้ผลลัพธ์นี้:
/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