دنیای جاوااسکریپت روز به روز بزرگتر میشود. اگر از برنامه نویسان قدیمی باشید، یادتان هست که اوایل جاوا اسکریپت فقط برای پویاسازی صفحات وب استفاده میشد. اما امروزه تقریبا هر کاری را میتوانید با آن انجام دهید. یکی از کارهای مهمی که جاوااسکریپت انجام میدهد، برنامه نویسی سمت سرور است. به کمک محیط اجرایی Node.js و فریم ورکهایی مثل Express.js میتوانید با جاوااسکریپت سرویسهای تحت وب بسازید.
Express.js یک وب فریم ورک برای محیط اجرایی Node.js است که در نوامبر سال ۲۰۱۰ به طور رسمی معرفی و رونمایی شد. اکسپرس جی اس مثل بیشتر فریمورکهای جاوااسکریپت به صورت آزاد (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 چه مزایایی دارد؟
کار با اکسپرس جی اس آسان است و میتوانید به سرعت با این فریم ورک ارتباط برقرار کنید، پس یکی از مهمترین مزایای آن یادگیری راحت این فریم ورک است. همینطور اکسپرس جی اس به راحتی پیکربندی شده و به خوبی قابل شخصی سازی (Customize) است. هنگامی که با Node ادغام میشود، به شما کمک میکند با سرعت و دقت بالا برنامههای تحت وب قدرتمند بسازید.
Express.js به راحتی با تمپلیت انجینهای مختلف مثل Pug ادغام میشود. در ارتباط با دیتابیسهای مختلف مثل MySQL یا MongoDB بسیار خوب عمل کرده و در ساخت Rest api سرور کمک بسیار زیادی به شما میکند. اکسپرس جی اس به آسانی به شما اجازه میدهد Routeهای برنامه خود را با متدهای HTTP تعریف کنید.
کدام شرکتها از Express.js استفاده میکنند؟
از آنجا که اکسپرس جی اس یک فریم ورک مینیمال و بسیار انعطافپذیر است، کسب و کارها و برندهای زیادی به آن اعتماد کرده و بخشهای مختلفی از محصولات خود را با اکسپرس جی اس طراحی کردهاند. بعضی از این برندها عبارتند از توییتر، آیبیام، اوبر و تعداد زیادی برند دیگر که با این فریم ورک کار میکنند.
نصب اکسپرس جی اس از طریق 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 را گرفت، باید با توجه به فانکشن پاسخ مناسبی به آن بدهد. همانطور که میبینید ۲ آرگومان برای آن تعریف شده است. اولی (req) آدرس صفحه یا URL را مشخص کرده و آرگومان دوم (res) فانکشنی است که به Express.js میگوید چه چیزی را به کسی که این درخواست را ایجاد کرده برگرداند
- خط پنجم: در آخر .listen کمک میکند برنامه خود را در پورت مدنظر ماشین خود ( در اینجا ۳۰۰۰ ) بایند کنیم
وقتی دستور NPM Install را بزنید و وابستگیهای لازم را از طریق ترمینال نصب کنید، آنها به فایل Package.json اضافه خواهند شد:
{
“name”: “web-server”,
“version”: “۰.۰.۰”,
“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 استفاده میکنید باید این کار را دستی انجام دهید.
در مرحله آخر وارد مرورگر خود شده و به صورت لوکال وارد پورت ۳۰۰۰ شوید:
http://localhost:3000/
کار تمام شد. خسته نباشید. حالا باید روی صفحه نمایش خود پیغام “Hello Express” را مشاهده کنید.