محمدرضا عرفانی
محمدرضا عرفانی
خواندن ۴ دقیقه·۳ سال پیش

دوره آموزشی ExpressJS

اگر به عنوان برنامه نویس بک اند فعالیت می‌کنید، شاید اسم ExpressJS رو شنیده باشید. اکسپرس جی اس ابزاری است که در محیط NodeJS به شما این امکان رو می‌ده تا درخواست هایی رو که از سمت کلاینت ها ارسال می‌شه رو مدیریت کنید.

آموزش ExpressJS
آموزش ExpressJS


مثلا شما با یک سرور تحت وب میتونید، از راه دور دستوراتی رو به برنامتون ارسال کنید.تازه اونم با مرورگر قابل انجام هست و نیاز به نصب نرم افزار دیگه ای نیست.

یا میتونید با راه اندازی اینترنت اشیاء از طریق این سرور، کنترل اشیاء رو با استفاده از اینترنت در اختیار بگیرید.

خلاصه برای هرجایی که نیاز به اتصالات کلاینت / سروری هست،استفاده از این فریم ورک می‌تونه کار راه انداز باشه.

مثلا یکبار بچه های رشته برق از من خواسته بودن تا سروری راه اندازی کنم که گوش به فرمان چند تا URL خاص باشه، که براشون با سرعت بالایی این کارو انجام دادم :)

تجربه ی شخصی من در این محیط به شدت خوب و مثبت هستش و در اینجا مایلم چند تا از مزیت های اکسپرس جی اس رو خدمتتون توضیح بدم.

ویژگی های اکسپرس

نصب ساده

نصب اکسپرس جی اس به قدری ساده است که توی چند خط می‌تونم بهتون توضیح بدم. ابتدا باید NodeJS رو دانلود کنید و نصب کنید که یک فایل کم حجمی هم هست اتفاقا...

سپس با کامند زیر داخل کامند پرامپت، می‌تونید اون رو نصب کنید.

npm i --save express

برای اینکه اکسپرس یا هر ماژول دیگه ای رو به صورت Global نصب کنید میتونید از سوئیچ g- استفاده کنید.

npm i --save express -g

در نهایت یک فایل به نام app.js بسازید، و داخلش این موارد رو بنویسید.

const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World') }) app.listen(3000);

سرور شما راه اندازی شد. خیلی شیک و مجلسی

مستندات خوب

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


مستندات ExpressJS
مستندات ExpressJS


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

راحتی زیاد

اکسپرس جی اس سینتکس بسیار راحتی داره و در همون ابتدای کار، با یه مقدار دقت، می‌تونیم بفهمیم داستان از چه قرار هست.برای نمونه مثال زیر، رو در نظر بگیرید.

var express = require('express'); const app = express(); app.get('/myurl', function(req, res) { });

در قطعه کد بالا، مشاهده می‌کنید که ما دستوری تعریف کردیم تا درخواست هایی از نوع get که از سمت کاربر به آدرس myurl ارسال میشه رو، در سمت سرور دریافت کنیم.

روت های پویا

همانطور که در قطعه کد بالا مشاهده کردید، ما به یک آدرس ثابت (myurl) درخواستی را ارسال کردیم.اما اکسپرس جی اس، ویژگی ای به نام روت های پویا دارد که در آن از REGEX می‌توان بهره برد و مثلا مشخص کرد که هر آدرسی که شامل یک قانون خاص بود را شامل شود.

router.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, (req, res) => { const from = req.params[0] const to = req.params[1] || 'HEAD' res.send(`commit range ${from}..${to}`) })

مثلا قانونی که در قطعه کد بالا تعریف شده است، هم به درخواست/commits/71dbb9c و هم به درخواست/commits/71dbb9c..4c084f9 پاسخ می‌دهد.

پشتیبانی از Template Engine

داخل وب سایت expressjs، لیست بسیاری از موتورهای پردازش قالب را آورده است که هرکدام سینتکس خاص خودشان را دارند و گزینه های متنوعی را در اختیار شما قرار می‌دهند.

یست موتورهای پردازش قالب
یست موتورهای پردازش قالب


البته من خودم تمایل به استفاده از هیچکدام از انجین های بالا ندارم. بیشتر ترجیح می‌دهم کدهای فرانت اند را با  VueJS بنویسم.اینطوری هم امکانات فوق العاده ای را درهنگام کدنویسی در اختیار دارم، هم کد نهایی تولید شده، بسیار تمیز نوشته می‌شود.به این دلیل که کدهای فرانت و بک هرکدام در یک پروژه ی جداگانه نوشته شده و همه چیز درهم برهم نیست. به شما هم توصیه می‌کنم که تا جایی که می‌تونید برای پروژه هاتون از React یا Vue استفاده کنید.

پشتیبانی از JSON

بعد از اینکه پردازش ما در سمت سرور انجام شد، میتونیم با دستور زیر خیلی راحت پاسخ خودمون رو به شکل JSON در بیاریم و اون رو به کلاینت تحویل بدیم.مثل قطعه کد زیر:

var express = require('express'); const app = express(); app.get('/myurl', function(req, res) { return res.json({title:&quotSuccessfully processed&quot}); });

میدل ویرها

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

مثلا شما برای آتنتیکیشن در سایتتون از JWT (جیسون وب توکن) کمک می‌گیرید و بایستی توکن موجود در تمام درخواست ها رو چک کنید تا بفهمید آیا کاربری که در حال ارسال ریکوئست به سمت سرور هست، به سایت شما لاگین کرده است یا خیر؟

برای این کار خیلی راحت با استفاده از کد زیر یک میدل ویر می‌نویسید تا تمام روت های شما رو چک بکند .

برای نوشتن یک میدل ویر می‌توان از کلمه کلیدی use استفاده کرد.

app.use('/middleware',function(req,res,next){ //some code next(); });

برنامه های جانبی

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

برای نمونه می‌توان به express-session و express-cors و express-graphql و i18n-express و express-robots-txt اشاره کرد.

استفاده شده توسط کمپانی های معروف

در سایت expressjs، برخی از کمپانی هایی که از ExpressJS استفاده می‌کنند را می‌تونانید ملاحظه بفرمایید.

مستندات ExpressJS
مستندات ExpressJS


https://virgool.io/p/qadthrv7y7uw/%F0%9F%93%B7%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%D8%A7%D8%B2ExpressJS%D8%AF%D8%B1%DA%A9%D9%85%D9%BE%D8%A7%D9%86%DB%8C%D9%87%D8%A7%DB%8C%D9%85%D8%B9%D8%B1%D9%88%D9%81

مقالات آموزشی

در این قسمت یکی از بهترین سایت های آموزش برنامه نویسی را برای شما آورده ایم تا با مطالعه ی مقالات موجود در این سایت، بتوانید مهارت خوبی را در استفاده از ExpressJS کسب کنید.

اگر مفید بود برای ما هم دعا کنید.


ویدیوهای آموزشی فارسی

برای آموزش این فریم ورک جذاب و دوست داشتنی، می‌توانید آموزش فریم ورک اکسپرس جی اس را مشاهده نمایید.

لیست سرفصل های دوره ExpressJS را در زیر برای آشنایی بیشتر قرارداده ایم:

  • آشنایی با برنامه نویسی بک اند
  • نصب Express JS
  • انواع درخواست ها در ExpressJS
  • آشنایی با گروه بندی route ها
  • میدل ویر چیست؟
  • آشنایی با فایل های static
  • آشنایی با روت های پویا در ExpressJS
  • نحوه ارسال پارامترها در درخواست های نوع post و get
  • ذخیره اطلاعات در cookie
  • استفاده از session در مرورگر
  • رفع باگ استفاده از کوکی و سشن به طور هم زمان
آموزش expressjsdoctorjsآموزش برنامه نویسیآموزش بک انداکسپرس جی اس
مدرس دوره های برنامه نویسی تحت وب https://doctorjs.ir
شاید از این پست‌ها خوشتان بیاید