ما هو الموديل المدمج (The Built-in HTTP Module)
ما هو الموديل المدمج (The Built-in HTTP Module)
module يعني الوحدة
تحتوي مكتبة Node.js على وحدة نمطية (built-in module) مضمنة تسمى HTTP ، والتي تسمح لـ Node.js بنقل البيانات عبر بروتوكول نقل النص التشعبي (HTTP).
تحتوي مكتبة Node.js على وحدة نمطية (built-in module) مضمنة تسمى HTTP ، والتي تسمح لـ Node.js بنقل البيانات عبر بروتوكول نقل النص التشعبي (HTTP).
لتضمين module HTTP ، استدعي الدالة
require('http')
:
var http = require('http');
خادم ويب (Node.js as a Web Server)
يمكن لوحدة HTTP إنشاء خادم HTTP يستمع إلى منافذ الخادم ويعطي استجابة
للعميل.
استخدم الدالة createServer () لإنشاء خادم HTTP:
var http = require('http');
//إنشاء كائن الخادم:
http.createServer(function (req, res) {
res.write('Hello World!'); //اكتب ردًا على العميل
res.end(); //إنهاء الرد
}).listen(8080); //فتح الخادم على المنفذ 8080
سيتم تنفيذ الدالة (fuction)التي تم تمريرها إلى الاسلوب (method)
http.createServer () ، عندما يحاول شخص ما الوصول إلى الكمبيوتر على المنفذ
8080.
احفظ الكود أعلاه في ملف يسمى "demo_http.js" ، وابدأ تشغيل الملف:
C:\Users\Your Name>node demo_http.js
افتح المتصفح على الرابط التالي http://localhost:8080اضافة HTTP الى رأس الصفحة
إذا كان من المفترض أن يتم عرض الاستجابة من خادم HTTP بتنسيق HTML ، فيجب
عليك تضمين رأس HTTP بنوع المحتوى الصحيح:اي "Content-Type text/html"
مثال
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 يعني أن كل شيء على ما يرام ،
- المتغير الثاني عبارة عن كائن(object) يحتوي على رؤوس الاستجابة.
التقاط القيم المرسلة على الرابط
تحتوي الدالة التي تم تمريرها إلى http.createServer () على البرامتر
req التي تمثل الطلب من العميل ، ككائن (كائن http.IncomingMessage).
هذا الكائن له خاصية تسمى "url" والتي تحتوي على جزء عنوان url الذي يأتي بعد
اسم المجال او النطاق:
مثال
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" وشغله في موجه الاوامر
C:\Users\Your Name>node demo_http_url.js
افتح المتصفح على الرابط التالي http://localhost:8080/hellourl
تقسيم القيم المرسلة على الرابط
توجد وحدات مدمجة لتقسيم سلسلة الاستعلام بسهولة إلى أجزاء قابلة للقراءة ، مثل
وحدة الرابط (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" وشغله في موجه الاوامر cmd :
C:\Users\Your Name>node demo_querystring.js
والان افتح متصفح الويب على الرابط التالي:
http://localhost:8080/?year=2021&month=July النتيجة
2021 July