افزايش قيمت دوره‌ها در راهه! ۲۱٪ تخفیف ثبت‌نام با قیمت فعلی

فریم ورک Express.js چیست و چه کاربردی دارد؟

دنیای جاوا اسکریپت روز به روز بزرگتر می‌شود. اگر از برنامه نویسان قدیمی باشید، یادتان هست که اوایل جاوا اسکریپت فقط برای پویاسازی صفحات وب استفاده می‌شد. اما امروزه تقریبا هر کاری می‌توان با آن انجام دهید. یکی از کارهای مهمی که جاوااسکریپت انجام می‌دهد، برنامه نویسی سمت سرور است. به کمک محیط اجرایی Node.js و فریم ورک‌هایی مثل Express.js می‌توانید با جاوااسکریپت سرویس‌های تحت وب بسازید. در این مطلب بررسی می‌کنیم که فریم ورک Express.js چیست و یک Rest api ساده با آن خواهیم ساخت.

Express.js چیست؟

Express.js یک وب فریم ورک برای محیط اجرایی Node.js است (پیشنهاد می‌کنیم به صفحه آموزش node js سر بزنید)که در نوامبر سال 2010 به طور رسمی معرفی و رونمایی شد. اکسپرس جی اس مثل بیشتر فریم‌ورک‌های جاوااسکریپت به صورت آزاد (Free) و متن باز (Open Source) ارائه شده است. Express.js از پروانه (لایسنس) MIT استفاده می‌کند. به کمک این فریم ورک می‌توانید وب اپلیکیشن یا APIهای گوناگون طراحی کنید.

نویسنده و طراح اصلی Express.js گفته که ایده اصلی ساخت این فریم ورک را از Sinatra الهام گرفته است. Sinatra یک کتابخانه وب نوشته شده به زبان روبی است که می‌تواند جایگزینی برای چهارچوب‌هایی مثل Ruby On Rails یا Nitro باشد. به این ترتیب اکسپرس جی اس هم مثل سینتارا بسیار سبک بوده و امکانات آن در قالب پلاگین‌ها ارائه می‌شود.

Express.js کامپوننت سمت بک اند در MEAN به حساب می‌آید. MEAN مخفف چهار سرویس و پلتفرم مختلف است که در پایین مشاهده می‌کنید:

  • MongoDB: یک پایگاه داده NoSQL و چند سکویی است
  • Express.js: یک فریم ورک سمت سرور برای نود جی است
  • Angular.js: یک فریم ورک برای طراحی رابط کاربری است
  • Node.js: محیط اجرایی جاوااسکریپت است و اجازه می‌دهد کدهای جاوااسکریپت را در سرور اجرا کنید

استفاده از Express.js چه مزایایی دارد؟

مزایای استفاده از Express.js

کار با اکسپرس جی اس آسان است و می‌توانید به سرعت با این فریم ورک ارتباط برقرار کنید، پس یکی از مهم‌ترین مزایای آن یادگیری راحت این فریم ورک است. همینطور اکسپرس جی اس به راحتی پیکربندی شده و به خوبی قابل شخصی سازی (Customize) است. هنگامی که با Node ادغام می‌شود، به شما کمک می‌کند با سرعت و دقت بالا برنامه‌های تحت وب قدرتمند بسازید.

Express.js به راحتی با تمپلیت انجین‌های مختلف مثل Pug ادغام می‌شود. در ارتباط با دیتابیس‌های مختلف مثل MySQL یا MongoDB بسیار خوب عمل کرده و در ساخت Rest api سرور کمک بسیار زیادی به شما می‌کند. اکسپرس جی اس به آسانی به شما اجازه می‌دهد Routeهای برنامه خود را با متدهای HTTP تعریف کنید.

کدام شرکت‌ها از Express.js استفاده می‌کنند؟

از آنجا که اکسپرس جی اس یک فریم ورک مینیمال و بسیار انعطاف‌پذیر است، کسب و کارها و برندهای زیادی به آن اعتماد کرده و بخش‌های مختلفی از محصولات خود را با اکسپرس جی اس طراحی کرده‌اند. بعضی از این برندها عبارتند از توییتر، IBM، پی پال، Uber و تعداد زیادی برند دیگر که با این فریم ورک کار می‌کنند.

نصب اکسپرس جی اس از طریق Node

همانطور که می‌دانید NPM مخفف Node Package Manager بوده و یک مدیر بسته برای زبان برنامه نویسی جاوااسکرپت به حساب می‌آید. برای نصب Express.js قبل از هر چیز مطمئن شوید که NPM را نصب دارید. بعد دستور زیر را محیط خط فرمان وارد کنید تا اکسپرس جی اس شروع به نصب کند:

npm install express

ساخت یک Rest api ساده با Express.js

در مرحله اول ترمینال را باز کرده و یک پوشه جدید با نام web-server ایجاد کنید:

mkdir web-server

بعد وارد پوشه پروژه شده و فایل package.json را به کمک دستور npm init بسازید:

cd web-server
npm init

سپس نوبت نصب Express است که کمی قبل گفتیم چطور انجام می‌شود:

npm install express --save

در قدم بعدی یک پوشه با نام server.js در ریشه اصلی پروژه ایجاد کنید:

touch server.js

این فایل همانجایی است که ما پیکربندی تمام مسیرها (Routes) را انجام خواهیم داد.

دستور touch در ترمینال لینوکس برای ساخت یک فایل جدید به کار می‌رود.

کدهای زیر را به فایل server.js که کمی قبل‌تر ساخته بودید اضافه کنید:

const express = require('express');
var app = express();
app.get('/', (req, res) => {
    res.send('Hello Express')
});
app.listen(process.env.PORT || 3000)

لازم است که کمی درباره کدهای بالا صحبت کنیم:

  • خط اول: require کار ایمپورت کردن اکسپرس را برای شما انجام می‌دهد
  • خط دوم: برنامه اکسپرس خود را در با ست کردن متغیر app می‌سازیم
  • خط سوم و چهارم: .got می‌گوید که وقتی route را گرفت، باید با توجه به فانکشن پاسخ مناسبی به آن بدهد. همانطور که می‌بینید 2 آرگومان برای آن تعریف شده است. اولی (req) آدرس صفحه یا URL را مشخص کرده و آرگومان دوم (res) فانکشنی است که به Express.js می‌گوید چه چیزی را به کسی که این درخواست را ایجاد کرده برگرداند
  • خط پنجم: در آخر .listen کمک می‌کند برنامه خود را در پورت مدنظر ماشین خود ( در اینجا 3000 ) بایند کنیم

وقتی دستور NPM Install را بزنید و وابستگی‌های لارم را از طریق ترمینال نصب کنید، آنها به فایل Package.json اضافه خواهند شد:

{
  “name”: “web-server”,
  “version”: “0.0.0”,
  “description”: “Sample Code”,
  “main”: “index.js”,
  “author”: {
    “name”: “Linda Haviv”,
    “email”: “”
  },
  "dependencies": {
     "express": "4.15.3",
     "jade": "*",
     "underscore": "^1.7.0"
  }
}
  • کاراکتر یا نماد ستاره (*) که در بالا می‌بینید یعنی برنامه با هر نسخه‌ای از آن تکنولوژی کار می‌کند
  • کاراکتر یا نماد (^) می‌گوید که از آخرین نسخه یا ورژن آن تکنولوژی باید استفاده کرد

حالا برای اجرای برنامه خود نیاز به نصب Nodemon داریم. در ترمینال دستورات زیر را تایپ کنید تا این ابزار نصب شود:

npm install -g nodemon
nodemon server.js
زمانی که برنامه خود را به صورت لوکال اجرا می‌کنید، می‌توانید به جای Node از Nodemon استفاده کنید. Nodemon تغییرات برنامه شما را به صورت خودکار ردیابی کرده و بعد از هر تغییر برنامه را ریستارت می‌کند. هنگامی که از Node استفاده می‌کنید باید این کار را دستی انجام دهید.

در مرحله آخر وارد مرورگر خود شده و به صورت لوکال وارد پورت 3000 شوید:

https://localhost:3000/

کار تمام شد. خسته نباشید. حالا باید روی صفحه نمایش خود پیغام “Hello Express” را مشاهده کنید.

نتیجه گیری

 

فرصت های بزرگ و درآمدهای عالی متعلق به متخصص هاست. برای متخصص شدن، مشاوره رایگان بگیر:

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۱۰ دیدگاه
۲۷ اردیبهشت ۱۴۰۱، ۰۹:۱۲
نمیشه یک فرانت با js خام نوشت (بدون استفاده از هیچ فریمورکی یا node) که تمام apiها رو php (بصورت mvc)، روی سرور به شکل json بده و فقط جاوااسکریپت، بصورت spa و mpa، توأمان، بتونه عمل کنه و هیچ ربطی به back-end نداشته باشه؟
یعنی کار js اصلا روی سرور نباشه و سمت مرورگر بصورت spa و mpa با حفظ ارسال کلمات کلیدی به گوگل عمل کنه؟
نازنین کریمی مقدم ۲۷ اردیبهشت ۱۴۰۱، ۱۸:۲۸
درود
به صورت حرفه ای خیر اما برای سایتهای خیلی خیلی سبک ممکن هست شدنی باشه.
سومیا ۲۹ مرداد ۱۴۰۰، ۱۶:۱۵
خیلی عالی بود
مهدی ۲۲ مهر ۱۳۹۹، ۰۵:۰۶
مقاله مفیدی بود
نازنین کریمی مقدم ۲۲ مهر ۱۳۹۹، ۱۱:۳۵
ممنون که با ما همراه هستید.
حمید ۱۸ تیر ۱۳۹۹، ۱۰:۳۹
ممنون مطالب مفیدی بود بابت شروع کار با اکسپرس.
فقط اون لوگوی ری اکت چی میگه اون بالا
جایی که app رو‌توضیح دادید ایراد نگارشی داره تصحیح بفرمایید
فائقه نامور ۱۹ مرداد ۱۳۹۹، ۲۱:۲۳
سلام ممنون از توجه شما
موردی که اشاره فرمودید به تیم تولید محتوا انتقال داده می شود
محسن ۲۴ آبان ۱۳۹۸، ۱۹:۱۱
بسیار تشکر بابت مقاله فوق العادتون.
۲۰ فروردین ۱۴۰۲، ۱۸:۵۱
واقعا خوب بود">
۲۰ فروردین ۱۴۰۲، ۱۸:۵۲
واقعا خوب بود