وحدة 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.