طريقة إنشاء Server بإستخدام Nodejs

طريقة إنشاء Server بإستخدام Nodejs

17 ماي 2022|4 دقائق قراءة

فهاد المقال غانتعرفو على كيفاش تقاد Server بإستخدام Nodejs :

تعريف Nodejs :

Nodejs هو بيئة كاتمكنك من تنفيذ لغة Javascript خارج المتصفح, أي في Server , بمعنى أنه بإمكانك تستعملو لإنشاء برامج ل Backend.

الإستعدادات :

  • أولا : خاصك تثبت Nodejs في الحاسوب ديالك , إلى مكانش عندك بإمكانك تحملو من هاد الموقع.

  • ثانيا : أنشئ مجلد فالحاسوب ديالك بإسم server و داخل هاد المجلد أنشئ ملف بإسم index.js ( فيه غانكتبو ل code ).

  • ثالثا : شغل هاد الأمر في Terminal لإنشاء ملف package.json.

npm init -y
  • رابعا : فتح المجلد بإستخدام Text editor.

النتيجة غاتكون على هاد الشكل:

folder structure

بناء 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 , النتيجة غاتكون على هاد الشكل :

server response

المشكل اللي عندنا الأن هو أنه واخا تبدل 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"); })

النتيجة غاتكون على هاد الشكل :

the response

2️⃣ بإستخدام Express package :

Express مبني فوق Http module لكن كايقدم ليك طريقة أسهل باش تقاد Server , لأنه فاش server غايكبر و غايولي عندك العديد من Routes الأمور غاتعقد إلى كنتي كاتستخدم http module مباشرة.

باش نقادو server بإستخدام Express, غانتبعو هاد الخطوات :

  • خاصنا نقومو بتحميل و تثبيت express في المشروع ديالنا عن طريق هاد الأمر :
npm install express

غاتلاحظ أنه تزاد عندك مجلد إسمو node_modules و ملف إسمو package-lock.json.

file structure 2

  • الأن في ملف 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 يقوم بالتعديل على شي حاجة في قاعدة البيانات.

كانتمنا تكونو ستافدتو من هاد المقال و إلى اللقاء في مقال أخر.