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 — إدارة الحزم
| الحزمة | الاستخدام |
|---|---|
| express | Framework للسيرفر |
| mongoose | التعامل مع MongoDB |
| jsonwebtoken | JWT للمصادقة |
| bcrypt | تشفير كلمات المرور |
| dotenv | إدارة متغيرات البيئة |
| cors | السماح بطلبات من دومينات أخرى |
✅ الطريق بعد Node.js
بعد إتقان Node.js + Express تعلم: قاعدة بيانات (MongoDB أو PostgreSQL)، المصادقة JWT، ثم طبّق مشروع Full-Stack كامل مع React في الـ Frontend.