Express Js چیست؟

Express Js چیست؟

مقدمه‌ای بر Express.js

Express.js یا به اختصار Express، یک فریمورک وب برای Node.js است که به توسعه‌دهندگان کمک می‌کند برنامه‌های وب و APIهای قدرتمند و سریع بسازند. Express به دلیل سادگی و انعطاف‌پذیری‌اش، انتخاب محبوبی بین توسعه‌دهندگان است.

ویژگی‌های کلیدی Express.js

  • سادگی و انعطاف‌پذیری: Express.js با داشتن یک رابط کاربری ساده و انعطاف‌پذیر، توسعه را سریع و آسان می‌کند.
  • میان‌افزار (Middleware): پشتیبانی از میان‌افزارها برای مدیریت درخواست‌ها و پاسخ‌ها.
  • روتر پیشرفته: امکان تعریف مسیرهای پویا و پیچیده برای مدیریت درخواست‌ها.
  • پشتیبانی از قالب‌های مختلف: پشتیبانی از موتورهای قالب مختلف مانند Pug و EJS.
  • توسعه سریع: ابزارهای زیادی برای توسعه سریع و بهره‌وری بالا.

نصب و راه‌اندازی Express.js

برای نصب Express.js، ابتدا باید Node.js و npm (مدیر بسته‌های Node.js) را نصب کنید. سپس می‌توانید Express.js را به پروژه خود اضافه کنید.

# ایجاد یک پوشه جدید برای پروژه

mkdir my-express-app
cd my-express-app

# ایجاد یک فایل package.json
npm init -y

# نصب Express.js
npm install express --save

ساخت اولین برنامه با Express.js

پس از نصب Express.js، می‌توانید اولین برنامه خود را ایجاد کنید. یک فایل به نام app.js بسازید و کد زیر را در آن قرار دهید.

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

برای اجرای برنامه، دستور زیر را در ترمینال وارد کنید.

node app.js

میان‌افزار (Middleware) در Express.js

میان‌افزارها توابعی هستند که دسترسی به درخواست‌ها و پاسخ‌ها را قبل از اینکه به روتر یا کنترلر اصلی برسند، فراهم می‌کنند. Express.js از انواع مختلف میان‌افزارها پشتیبانی می‌کند، از جمله میان‌افزارهای داخلی، میان‌افزارهای خارجی و میان‌افزارهای سفارشی.

مثال زیر نحوه استفاده از یک میان‌افزار سفارشی را نشان می‌دهد:

app.use((req, res, next) => {
  console.log('Time:', Date.now());
  next();
});

مدیریت درخواست‌ها و پاسخ‌ها

Express.js امکانات زیادی برای مدیریت درخواست‌ها و پاسخ‌ها فراهم می‌کند. می‌توانید مسیرهای مختلفی را تعریف کنید و پاسخ‌های متفاوتی بر اساس نوع درخواست ارسال کنید.

app.post('/user', (req, res) => {
  res.send('Got a POST request');
});

app.put('/user', (req, res) => {
  res.send('Got a PUT request at /user');
});

app.delete('/user', (req, res) => {
  res.send('Got a DELETE request at /user');
});

مدیریت خطاها

مدیریت خطاها در Express.js بسیار مهم است. شما می‌توانید یک میان‌افزار خطاگیر تعریف کنید که خطاهای موجود در برنامه را مدیریت کند.

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

اتصال به پایگاه داده

Express.js به تنهایی از پایگاه داده پشتیبانی نمی‌کند، اما می‌توانید از ماژول‌های مختلفی برای اتصال به پایگاه داده‌ها استفاده کنید. یکی از محبوب‌ترین ماژول‌ها برای MongoDB، Mongoose است.

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database', {
  useNewUrlParser: true,
  useUnifiedTopology: true
});

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', () => {
  console.log('Connected to the database');
});

مثال عملی: ساخت یک API ساده

در این بخش، یک API ساده برای مدیریت لیست وظایف (To-Do List) می‌سازیم.

ابتدا مدل وظیفه را تعریف می‌کنیم سپس مسیرهای API را تعریف می‌کنیم:

// ایجاد یک وظیفه جدید
app.post('/tasks', async (req, res) => {
  const task = new Task(req.body);
  await task.save();
  res.status(201).send(task);
});

// دریافت همه وظایف
app.get('/tasks', async (req, res) => {
  const tasks = await Task.find();
  res.send(tasks);
});

// به‌روزرسانی یک وظیفه
app.put('/tasks/:id', async (req, res) => {
  const task = await Task.findByIdAndUpdate(req.params.id, req.body, { new: true });
  res.send(task);
});

// حذف یک وظیفه
app.delete('/tasks/:id', async (req, res) => {
  await Task.findByIdAndDelete(req.params.id);
  res.status(204).send();
});

مزایا و معایب Express.js

مزایا:
  • سبک وزن: Express.js بسیار سبک و کم حجم است.
  • انعطاف‌پذیری بالا: امکان استفاده از انواع مختلف میان‌افزارها و ماژول‌ها.
  • پشتیبانی گسترده: جامعه بزرگی از توسعه‌دهندگان و منابع آنلاین فراوان.
معایب:
  • نیاز به تنظیمات بیشتر: برای پروژه‌های بزرگتر، نیاز به تنظیمات و پیکربندی‌های بیشتری دارد.
  • بدون پشتیبانی بومی از پایگاه داده: نیاز به استفاده از ماژول‌های جداگانه برای اتصال به پایگاه داده.

بهترین تمرین‌ها در استفاده از Express.js

  • استفاده از ساختار پوشه مناسب: برای مدیریت بهتر کدها و خوانایی بیشتر.
  • مدیریت صحیح خطاها: ایجاد میان‌افزارهای خطاگیر برای مدیریت بهتر خطاها.
  • استفاده از ابزارهای توسعه‌دهی: استفاده از ابزارهایی مانند Nodemon برای توسعه سریع‌تر.
  • پیاده‌سازی تست‌ها: نوشتن تست‌های واحد و یکپارچه برای اطمینان از عملکرد صحیح برنامه.

نتیجه‌گیری

Express.js یک فریمورک قدرتمند و انعطاف‌پذیر برای توسعه برنامه‌های وب و APIهاست. با استفاده از Express.js، توسعه‌دهندگان می‌توانند برنامه‌های خود را به سرعت و به راحتی ایجاد و مدیریت کنند. با پیروی از بهترین تمرین‌ها و استفاده از میان‌افزارها و ماژول‌های مناسب، می‌توانید برنامه‌های خود را بهینه و کارآمد نگه دارید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
بهینه‌سازی عملکرد Entity Framework Core: نکات و بهترین روش‌ها

بهینه‌سازی عملکرد Entity Framework Core: نکات و بهترین روش‌ها

آنچه در این پست میخوانید ۱. بهینه‌سازی کوئری‌ها (Query Optimization) فیلترگذاری زودهنگام (Early Filtering) جلوگیری از مشکل N+1 استفاده از…

بیشتر بخوانید
انگولار Angular چیست؟

انگولار Angular چیست؟

آنچه در این پست میخوانید مقدمه تاریخچه و تکامل انگولار ویژگی‌ها و مزایای انگولار ویژگی‌های کلیدی مزایا معماری انگولار ساختار…

بیشتر بخوانید
Fast API چیست؟

Fast API چیست؟

آنچه در این پست میخوانید مقدمه ویژگی‌های کلیدی FastAPI تکنولوژی‌ها و فریم‌ورک‌های مرتبط با پایتون کاربردهای FastAPI مثال‌های کاربردی از…

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.