فهاد المقال غانتعرفو على كيفاش تقاد Server
بإستخدام Nodejs
:
تعريف Nodejs :
Nodejs
هو بيئة كاتمكنك من تنفيذ لغة Javascript
خارج المتصفح, أي في Server
, بمعنى أنه بإمكانك تستعملو لإنشاء برامج ل Backend
.
الإستعدادات :
-
أولا : خاصك تثبت
Nodejs
في الحاسوب ديالك , إلى مكانش عندك بإمكانك تحملو من هادالموقع
. -
ثانيا : أنشئ مجلد فالحاسوب ديالك بإسم
server
و داخل هاد المجلد أنشئ ملف بإسمindex.js
( فيه غانكتبو ل code ). -
ثالثا : شغل هاد الأمر في Terminal لإنشاء ملف
package.json
.
npm init -y
- رابعا : فتح المجلد بإستخدام
Text editor
.
النتيجة غاتكون على هاد الشكل:
بناء Server :
كاينين العديد من الطرق لبناء Server في Nodejs لكن حنا فهاد المقال غانتعرفو على 2 طرق :
-
الطريقة المبنية في Nodejs أي بإستخدام Module يسمى
Http
. -
الطريقة الأكثر إستخداما بإستعمال Package سميتو
Express
1️⃣ بإستخدام Http module :
هاد ل Http module كايستخدم البروتوكول ديال الأنترنيت http
باش يستقبل و يرسل المعلومات. ما تخلطوش بينهم حيت عندهم نفس الإسم.
باش نقادو server بإستخدام هاد ل module, غانتبعو هاد الخطوات :
- باش نقدرو نستخدمو ل http module خاصنا نعيطوليه :
// Importing the http module const http = require("http")
-
الأن باش نشؤو Server غانستخدو Method كاينا في http module إسمها createServer اللي كاتقبل Function, اللي بدورها كاتقبل شيئين :
request : اللي هو الطلب اللي كايجي من عند المستخدم.
response : اللي هو الإجابة اللي غاترجع للمستخدم.
// Creating server const server = http.createServer((request, response) => { // Sending the response response.write("This is the response from the server") response.end(); })
- باش نجعلو server يستمع للطلبات, غانستخدمو Method إسمها listen و اللي كاتقبل رقم اللي عبارة عن ل Port اللي بغيتي تستخدم و أيضا ل callback function اللي كاتنفد ملي server كايولي جاهز لإستقبال الطلبات .
// Server listening to port 3000 server.listen(3000, () => { console.log("Server is Running"); })
- الأن في Terminal كتب :
node index.js
- الأن في المتصفح كتب
http://localhost:3000
, النتيجة غاتكون على هاد الشكل :
المشكل اللي عندنا الأن هو أنه واخا تبدل Route
, غاتحصل دائما على نفس الإجابة.
Route : هو داكشي اللي غايجي من بعد http://localhpst:3000
مثلا home/
أو contact/
... بإمكانك تكتب اللي عجبك.
الطلب Request ديال المستخدم هو Object
كايكونو فيه العديد من المعلومات و من بين هاد المعلومات كاين url
اللي هو Route المطلوب.
مثلا غانديرو Route
غانسميوه time/
, ملي يطلبو المستخدم غانجاوبوه بالوقت و التاريخ. في داخل createServer
غانستخدمو if statement
باش نعرفو واش Route = /time إلى كانت true
غانرسلو في الإجابة الوقت و التاريخ. ل code غايكون على هاد الشكل :
const http = require("http") const server = http.createServer((request, response) => { if(request.url === '/time'){ const time = new Date().toString(); response.write(time) response.end(); } response.write("This is the response from the server") response.end(); }) // Server listening to port 3000 server.listen(3000, () => { console.log("Server is Running"); })
النتيجة غاتكون على هاد الشكل :
2️⃣ بإستخدام Express package :
Express
مبني فوق Http module
لكن كايقدم ليك طريقة أسهل باش تقاد Server , لأنه فاش server غايكبر و غايولي عندك العديد من Routes الأمور غاتعقد إلى كنتي كاتستخدم http module مباشرة.
باش نقادو server بإستخدام Express, غانتبعو هاد الخطوات :
- خاصنا نقومو بتحميل و تثبيت express في المشروع ديالنا عن طريق هاد الأمر :
npm install express
غاتلاحظ أنه تزاد عندك مجلد إسمو node_modules
و ملف إسمو package-lock.json
.
- الأن في ملف
index.js
غانعيطو ل express :
const express = require("express")
- ثم غانشؤو server بهاد الطريقة :
const server = express();
- ثم غانحددو Routes اللي بغينا نستخدمو بالإضافة للإجابة اللي بغينا نرسلو بهاد الطريقة :
// Handling / Route server.get('/', (request, response) => { response.send('This is the express server'); }); // Handling /time Route server.get('/time', (req, response) => { const time = new Date().toString(); response.send(time); });
- الخطوة الأخيرة الإستماع إلى الطلبات :
// server listening server.listen(3000, () => { console.log('Server is Running'); });
- الأن في Terminal كتب :
node index.js
كيفما كاتشوفو , الطريقة سهلة و واضحة بإستخدام express.
النهاية :
في هاد المقال تطرقنا فقط للطلبات من نوع GET
بالأنجليزية GET requests
. كاينين العديد من الأنواع :
-
GET : كانستخدموه ملي كانطلبو data من Server.
-
POST : كانستعملوه ملي كانرسلو data ل Server.
-
DELETE : كانستعملوه ملي كانبغيو Server يمحي شي حاجة من قاعدة البيانات database.
-
PATCH : كانستعملوه ملي كانبغيو Server يقوم بالتعديل على شي حاجة في قاعدة البيانات.
كانتمنا تكونو ستافدتو من هاد المقال و إلى اللقاء في مقال أخر.