آموزش Node.js
مقدمه
Node.js یک محیط اجرایی (Runtime Environment) متنباز و قدرتمند برای اجرای جاوااسکریپت در سمت سرور است. در حالی که JavaScript در ابتدا فقط برای مرورگرها طراحی شده بود، Node.js این امکان را فراهم کرد که با همان زبان، برنامههای سمت سرور، API، ابزارهای CLI و حتی برنامههای Real-Time بسازیم.
Node.js بر پایه موتور V8 گوگل (همان موتوری که در Chrome استفاده میشود) ساخته شده و تمرکز اصلی آن بر روی کارایی بالا، مدیریت همزمانی (Concurrency) و I/O غیرهمزمان است.
چرا Node.js مهم است؟
- استفاده از JavaScript در فرانتاند و بکاند (Full JavaScript Stack)
- مناسب برای ساخت APIها و برنامههای مقیاسپذیر
- عملکرد عالی در برنامههای Real-Time مثل چت و نوتیفیکیشن
- اکوسیستم بسیار بزرگ با npm
Node.js در چه جاهایی استفاده میشود؟
- ساخت REST API و GraphQL API
- برنامههای Real-Time (Chat, Socket)
- بکاند وبسایتها و SPAها
- ساخت ابزارهای خط فرمان (CLI)
- Microservice Architecture
Node.js چیست؟
Node.js یک JavaScript Runtime است، نه فریمورک و نه زبان برنامهنویسی جدید. به زبان ساده، Node.js به شما اجازه میدهد کد جاوااسکریپت را خارج از مرورگر اجرا کنید.
برخلاف زبانهای سنتی سمت سرور، Node.js به صورت Asynchronous و Event-Driven عمل میکند و به جای ساخت Thread برای هر درخواست، از یک Event Loop استفاده میکند.
ویژگیهای کلیدی Node.js
- Non-Blocking I/O (غیرمسدودکننده)
- Event-Driven Architecture
- سرعت بالا به لطف V8
- مناسب برای بار ترافیکی بالا
نصب Node.js
برای شروع، باید Node.js را روی سیستم خود نصب کنید.
بررسی نصب Node.js
بعد از نصب، در ترمینال یا CMD دستورات زیر را اجرا کنید:
node -v
npm -v
اگر نسخه Node.js و npm نمایش داده شد، نصب با موفقیت انجام شده است.
اولین برنامه Node.js
بیایید اولین برنامه ساده Node.js را بنویسیم.
مرحله ۱: ساخت فایل
index.js
مرحله ۲: نوشتن کد
console.log("Hello Node.js!");
مرحله ۳: اجرا
node index.js
بعد از اجرا، پیام Hello Node.js! در ترمینال نمایش داده میشود.
ماژولها در Node.js
Node.js بر پایه معماری ماژولار ساخته شده است. هر فایل در Node.js میتواند به عنوان یک ماژول در نظر گرفته شود.
ماژول داخلی (Built-in Modules)
- fs : کار با فایلها
- path : مدیریت مسیرها
- http : ساخت سرور
- os : اطلاعات سیستم عامل
مثال استفاده از ماژول fs
const fs = require("fs");
fs.writeFileSync("test.txt", "Hello from Node.js");
ساخت یک سرور ساده با Node.js
Node.js میتواند بدون نیاز به فریمورک، یک وبسرور ساده بسازد.
const http = require("http");
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Hello World from Node.js");
});
server.listen(3000, () => {
console.log("Server running on port 3000");
});
با اجرای این کد و باز کردن آدرس http://localhost:3000، پیام نمایش داده میشود.
npm چیست؟
npm (Node Package Manager) مدیر بسته رسمی Node.js است که به شما اجازه میدهد از هزاران کتابخانه آماده استفاده کنید.
نصب یک پکیج
npm install express
فایل package.json
این فایل اطلاعات پروژه و وابستگیها را نگهداری میکند.
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"start": "node index.js"
}
}
آشنایی با Express.js
Express.js محبوبترین فریمورک Node.js است که کار ساخت API و وبسرور را ساده میکند.
مثال یک API ساده با Express
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello from Express!");
});
app.listen(3000, () => {
console.log("Server started on port 3000");
});
Asynchronous Programming در Node.js
Node.js به شدت مبتنی بر برنامهنویسی غیرهمزمان است.
Callback
setTimeout(() => {
console.log("Done!");
}, 1000);
Promise
const fetchData = () => {
return new Promise((resolve) => {
setTimeout(() => resolve("Data loaded"), 1000);
});
};
fetchData().then(data => console.log(data));
Async / Await
async function loadData() {
const result = await fetchData();
console.log(result);
}
loadData();
Node.js برای چه کسانی مناسب است؟
- برنامهنویسان JavaScript
- توسعهدهندگان Full Stack
- افرادی که API و SPA میسازند
- توسعهدهندگان علاقهمند به Real-Time App
جمعبندی
Node.js یکی از مهمترین ابزارهای دنیای توسعه وب مدرن است. با یادگیری Node.js میتوانید با JavaScript فراتر از مرورگر بروید و برنامههای قدرتمند، مقیاسپذیر و سریع بسازید.
در ادامه مسیر یادگیری Node.js، معمولاً مباحثی مانند Express.js، کار با دیتابیس (MongoDB, MySQL)، احراز هویت (JWT)، و معماری REST API مطرح میشوند.