اگر به عنوان برنامه نویس بک اند فعالیت میکنید، شاید اسم ExpressJS رو شنیده باشید. اکسپرس جی اس ابزاری است که در محیط NodeJS به شما این امکان رو میده تا درخواست هایی رو که از سمت کلاینت ها ارسال میشه رو مدیریت کنید.
مثلا شما با یک سرور تحت وب میتونید، از راه دور دستوراتی رو به برنامتون ارسال کنید.تازه اونم با مرورگر قابل انجام هست و نیاز به نصب نرم افزار دیگه ای نیست.
یا میتونید با راه اندازی اینترنت اشیاء از طریق این سرور، کنترل اشیاء رو با استفاده از اینترنت در اختیار بگیرید.
خلاصه برای هرجایی که نیاز به اتصالات کلاینت / سروری هست،استفاده از این فریم ورک میتونه کار راه انداز باشه.
مثلا یکبار بچه های رشته برق از من خواسته بودن تا سروری راه اندازی کنم که گوش به فرمان چند تا 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);
سرور شما راه اندازی شد. خیلی شیک و مجلسی
اکسپرس جی اس، یک سایت رسمی را به مستندات خود اختصاص داده است.مراجعه به این سایت، میتواند بسیاری از مشکلات شما را حل کند.
پس از اینکه وارد سایت شدید، با مراجعه به منوی سراسری افقی بالا و انتخاب گزینه 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 پاسخ میدهد.
داخل وب سایت expressjs، لیست بسیاری از موتورهای پردازش قالب را آورده است که هرکدام سینتکس خاص خودشان را دارند و گزینه های متنوعی را در اختیار شما قرار میدهند.
البته من خودم تمایل به استفاده از هیچکدام از انجین های بالا ندارم. بیشتر ترجیح میدهم کدهای فرانت اند را با VueJS بنویسم.اینطوری هم امکانات فوق العاده ای را درهنگام کدنویسی در اختیار دارم، هم کد نهایی تولید شده، بسیار تمیز نوشته میشود.به این دلیل که کدهای فرانت و بک هرکدام در یک پروژه ی جداگانه نوشته شده و همه چیز درهم برهم نیست. به شما هم توصیه میکنم که تا جایی که میتونید برای پروژه هاتون از React یا Vue استفاده کنید.
بعد از اینکه پردازش ما در سمت سرور انجام شد، میتونیم با دستور زیر خیلی راحت پاسخ خودمون رو به شکل JSON در بیاریم و اون رو به کلاینت تحویل بدیم.مثل قطعه کد زیر:
var express = require('express'); const app = express(); app.get('/myurl', function(req, res) { return res.json({title:"Successfully processed"}); });
فرض کنید یک کار تکراری رو برای تمام درخواست های دریافت شده از سمت کلاینت ها، انجام بدید.
مثلا شما برای آتنتیکیشن در سایتتون از 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 را در زیر برای آشنایی بیشتر قرارداده ایم: