Node.js يتيح تشغيل JavaScript خارج المتصفح — على السيرفر. هذا يعني بإمكانك بناء تطبيقات ويب كاملة بلغة واحدة من Frontend للـ Backend.

💡 ما يميز Node.js

Node.js غير متزامن (Asynchronous) وسريع جداً. يُستخدم من Netflix لـ PayPal. مثالي للـ APIs، التطبيقات الفورية، والمواقع ذات الطلب العالي.

1. التثبيت

// حمّل Node.js من nodejs.org (اختر LTS) // تحقق من التثبيت node --version npm --version // أنشئ مشروعاً جديداً mkdir my-api cd my-api npm init -y

2. أول سيرفر

// server.js const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'}); res.end('مرحباً من Node.js!'); }); server.listen(3000, () => { console.log('السيرفر يعمل على http://localhost:3000'); });

3. Express.js — Framework السيرفر

npm install express // app.js const express = require('express'); const app = express(); app.use(express.json()); // GET route app.get('/', (req, res) => { res.json({ message: 'مرحباً!', status: 'ok' }); }); // POST route app.post('/users', (req, res) => { const { name, email } = req.body; res.status(201).json({ id: 1, name, email }); }); app.listen(3000, () => console.log('Server running on port 3000'));

4. بناء API كامل

// routes/users.js const express = require('express'); const router = express.Router(); let users = [ { id: 1, name: 'أحمد', email: 'ahmed@mail.com' } ]; router.get('/', (req, res) => res.json(users)); router.get('/:id', (req, res) => { const user = users.find(u => u.id == req.params.id); if (!user) return res.status(404).json({ error: 'Not found' }); res.json(user); }); router.post('/', (req, res) => { const user = { id: Date.now(), ...req.body }; users.push(user); res.status(201).json(user); }); module.exports = router;

5. npm — إدارة الحزم

الحزمةالاستخدام
expressFramework للسيرفر
mongooseالتعامل مع MongoDB
jsonwebtokenJWT للمصادقة
bcryptتشفير كلمات المرور
dotenvإدارة متغيرات البيئة
corsالسماح بطلبات من دومينات أخرى
✅ الطريق بعد Node.js

بعد إتقان Node.js + Express تعلم: قاعدة بيانات (MongoDB أو PostgreSQL)، المصادقة JWT، ثم طبّق مشروع Full-Stack كامل مع React في الـ Frontend.