وحدة HTTP Node.js
وحدة HTTP المدمجة
يحتوي Node.js على وحدة نمطية مضمنة تسمى HTTP ، والتي تسمح لـ Node.js بنقل البيانات عبر بروتوكول نقل النص التشعبي (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
إذا كان من المفترض أن يتم عرض الاستجابة من خادم 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
http: // localhost: 8080 / شتاء
ستنتج هذه النتيجة:
/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.