دنیای جاوا اسکریپت روز به روز بزرگتر میشود. اگر از برنامه نویسان قدیمی باشید، یادتان هست که اوایل جاوا اسکریپت فقط برای پویاسازی صفحات وب استفاده میشد. اما امروزه تقریبا هر کاری میتوان با آن انجام دهید. یکی از کارهای مهمی که جاوااسکریپت انجام میدهد، برنامه نویسی سمت سرور است. به کمک محیط اجرایی Node.js و فریم ورکهایی مثل Express.js میتوانید با جاوااسکریپت سرویسهای تحت وب بسازید. در این مطلب بررسی میکنیم که فریم ورک Express.js چیست و یک Rest api ساده با آن خواهیم ساخت. بیشتر بخوانید:مقایسه PHP با Node.js
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 مخفف چهار سرویس و پلتفرم مختلف است که در پایین مشاهده میکنید:
کار با اکسپرس جی اس آسان است و میتوانید به سرعت با این فریم ورک ارتباط برقرار کنید، پس یکی از مهمترین مزایای آن یادگیری راحت این فریم ورک است. همینطور اکسپرس جی اس به راحتی پیکربندی شده و به خوبی قابل شخصی سازی (Customize) است. هنگامی که با Node ادغام میشود، به شما کمک میکند با سرعت و دقت بالا برنامههای تحت وب قدرتمند بسازید. Express.js به راحتی با تمپلیت انجینهای مختلف مثل Pug ادغام میشود. در ارتباط با دیتابیسهای مختلف مثل MySQL یا MongoDB بسیار خوب عمل کرده و در ساخت Rest api سرور کمک بسیار زیادی به شما میکند. اکسپرس جی اس به آسانی به شما اجازه میدهد Routeهای برنامه خود را با متدهای HTTP تعریف کنید.
کدام شرکتها از Express.js استفاده میکنند؟
از آنجا که اکسپرس جی اس یک فریم ورک مینیمال و بسیار انعطافپذیر است، کسب و کارها و برندهای زیادی به آن اعتماد کرده و بخشهای مختلفی از محصولات خود را با اکسپرس جی اس طراحی کردهاند. بعضی از این برندها عبارتند از توییتر، IBM، پی پال، Uber و تعداد زیادی برند دیگر که با این فریم ورک کار میکنند. بیشتر بخوانید:فریم ورکهای جاوا اسکریپت + بهترین فریم ورکهای JavaScript
نصب اکسپرس جی اس از طریق 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 که کمی قبلتر ساخته بودید اضافه کنید:
خط اول: require کار ایمپورت کردن اکسپرس را برای شما انجام میدهد
خط دوم: برنامه اکسپرس خود را در با ست کردن متغیر app میسازیم
خط سوم و چهارم: .got میگوید که وقتی route را گرفت، باید با توجه به فانکشن پاسخ مناسبی به آن بدهد. همانطور که میبینید 2 آرگومان برای آن تعریف شده است. اولی (req) آدرس صفحه یا URL را مشخص کرده و آرگومان دوم (res) فانکشنی است که به Express.js میگوید چه چیزی را به کسی که این درخواست را ایجاد کرده برگرداند
خط پنجم: در آخر .listen کمک میکند برنامه خود را در پورت مدنظر ماشین خود ( در اینجا 3000 ) بایند کنیم
وقتی دستور NPM Install را بزنید و وابستگیهای لارم را از طریق ترمینال نصب کنید، آنها به فایل Package.json اضافه خواهند شد:
کاراکتر یا نماد ستاره (*) که در بالا میبینید یعنی برنامه با هر نسخهای از آن تکنولوژی کار میکند
کاراکتر یا نماد (^) میگوید که از آخرین نسخه یا ورژن آن تکنولوژی باید استفاده کرد
حالا برای اجرای برنامه خود نیاز به نصب Nodemon داریم. در ترمینال دستورات زیر را تایپ کنید تا این ابزار نصب شود:
npm install -g nodemon
nodemon server.js
[info]زمانی که برنامه خود را به صورت لوکال اجرا میکنید، میتوانید به جای Node از Nodemon استفاده کنید. Nodemon تغییرات برنامه شما را به صورت خودکار ردیابی کرده و بعد از هر تغییر برنامه را ریستارت میکند. هنگامی که از Node استفاده میکنید باید این کار را دستی انجام دهید.[/info] در مرحله آخر وارد مرورگر خود شده و به صورت لوکال وارد پورت 3000 شوید:
https://localhost:3000/
کار تمام شد. خسته نباشید. حالا باید روی صفحه نمایش خود پیغام “Hello Express” را مشاهده کنید.
نتیجه گیری
۱۴ دیدگاه
Meysam۱۸ آبان ۱۴۰۳، ۰۶:۵۸
خیلی خوب راهنمایی میکنید
اسماعیل زارع۱۶ دی ۱۴۰۲، ۰۵:۵۹
حتما به پکیج زیر هم سری بزنید
بسیار مفید برای توسعه API
https://www.npmjs.com/package/@avonjs/avonjs
۲۷ خرداد ۱۴۰۲، ۲۱:۰۲
سلام
این فایل اومده روی کامپیوترم و پاک نمیشه و هرپوشه ای که توی فلش usb هست رو یه شورتکات میسازه و من نمیدونم این فایل چیه ویروسه یا برنامه یا دستور جاوا هست فایل رو برات اسمشو مینویسم
اینم اسم فایل tempNMIPEAC2U5.js
هیچ جوره هم پاک نمیشه نه از فلش نه از کامپیوتره
آنتی ویروس کامپیوتر قدیمیه
ممنون میشم اگر اطلاعات دارید منو راهنمایی کنید
نازنین کریمی مقدم۲۸ خرداد ۱۴۰۲، ۰۶:۱۰
درود
باید آنتی ویروس قوی نصب کنید و ویروس رو از بین ببرید وگرنه به مرور کل سیستم تون رو میگیره.
هرچه سریعتر از فایلهای مهم و ضروری تون بکاپ بگیرید.
۲۷ اردیبهشت ۱۴۰۱، ۰۴:۴۲
نمیشه یک فرانت با js خام نوشت (بدون استفاده از هیچ فریمورکی یا node) که تمام apiها رو php (بصورت mvc)، روی سرور به شکل json بده و فقط جاوااسکریپت، بصورت spa و mpa، توأمان، بتونه عمل کنه و هیچ ربطی به back-end نداشته باشه؟
یعنی کار js اصلا روی سرور نباشه و سمت مرورگر بصورت spa و mpa با حفظ ارسال کلمات کلیدی به گوگل عمل کنه؟
نازنین کریمی مقدم۲۷ اردیبهشت ۱۴۰۱، ۱۳:۵۸
درود
به صورت حرفه ای خیر اما برای سایتهای خیلی خیلی سبک ممکن هست شدنی باشه.
سومیا۲۹ مرداد ۱۴۰۰، ۱۱:۴۵
خیلی عالی بود
مهدی۲۲ مهر ۱۳۹۹، ۰۱:۳۶
مقاله مفیدی بود
نازنین کریمی مقدم۲۲ مهر ۱۳۹۹، ۰۸:۰۵
ممنون که با ما همراه هستید.
حمید۱۸ تیر ۱۳۹۹، ۰۶:۰۹
ممنون مطالب مفیدی بود بابت شروع کار با اکسپرس.
فقط اون لوگوی ری اکت چی میگه اون بالا
جایی که app روتوضیح دادید ایراد نگارشی داره تصحیح بفرمایید
فائقه نامور۱۹ مرداد ۱۳۹۹، ۱۶:۵۳
سلام ممنون از توجه شما
موردی که اشاره فرمودید به تیم تولید محتوا انتقال داده میشود
محسن۲۴ آبان ۱۳۹۸، ۱۵:۴۱
بسیار تشکر بابت مقاله فوق العادتون.
۲۰ فروردین ۱۴۰۲، ۱۵:۲۱
واقعا خوب بود">
۲۰ فروردین ۱۴۰۲، ۱۵:۲۲
واقعا خوب بود
شروع رایگان یادگیری برنامه نویسی
کلیک کنید 👇
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: