محمد زارع شیرکوهی
محمد زارع شیرکوهی
خواندن ۷ دقیقه·۴ سال پیش

Express.js چیست و چرا انقدر مهمه ؟‌

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

Fast, unopinionated, minimalist web framework for Node.js

به زبان جاوا اسکریپت نوشته شده است و تنها بعنوان یک لایه ی نازک ویژگی های هسته ی وب عمل میکند . بر خلاف فریمورک های بزرگ و پردردسر مثل Ruby on Rails  اکسپرس هیچگونه تمپیلت انجین یا ORM جانبی ندارد . اکسپرس توسط کامپوننت های دیگر ساخته نشده است .

کار اکسپرس این است که یک ابزاری برای دستان برنامه نویسان وب بسازد که ساخت سایت با Node.js را راحت بکند .

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

express.js بهترین گزینه برای استارتاپ هایی است که میخواهند سریعا یک محصول تولید کنند و زیاد درگیر مسائل پیچیده کدنویسی نشوند .

بیایید دقیقا express.js را بررسی کنیم و ببینیم که چطور کار میکنه ، خب اول مقاله باید این نکته را بدونید که پیش نیاز  express.js فهمیدن Node.js است .

محیط Node.js بخشی اساسی برای ساخت و استقرار express.js است . تقریبا میشه گفت Node.js یک مفسر کراس - پلتفرم برای جاوا اسکریپت است  که قادر به اجرای جاوا اسکریپت بصورت نامحدود برای مرورگرهاست .

در واقع Node.js به جاوا اسکریپت کمک میکند تا بتواند در سمت سرور هم نقش بازی کند و بعنوان یک زبان برنامه نویسی سمت سرور بجای زبان های PHP, Python, Java و ... اانتخاب شود .

توسط پکیج منیجر نود یا همان npm میتوان express.js را نصب کرد و Node.js از پیش نصب شده را شخصی سازی کرد .

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

این وب سرور ساده را بررسی کنید :

server.js

```

var express = require('express');

var app = express();

app.get('/', function(req, res){ res.send('<h1>Hello World!</h1>');

});

app.listen(8000);

```

توسط چند خط ساده شما میتوانید یک سرور درست کنید و به مرورگر بگید در ادرس  localhost:8000 بهش دسترسی داشته باش !

با آمدن جاوا اسکریپت به سمت سرور ، توسعه دهندگان وب از دو راه سودبری میکنند :

  1. تک زبانه شدن کل وب سایت ( بک اند و فرانت اند ) با جاوا اسکریپت در زمان توسعه وب بسیار صرفه جویی میکند .
    براساس نظرسنجی سایت استک اور فلو در سال 2017  جاوا اسکریپت بیشترین کاربرد را در بین زبان های برنامه نویسی وب دارد و همچنین جاوا اسکریپت در حال رشد سریع است همانطور که فریمورک های سمت فرانت اند مثل vue.js , Angular.js و React.js رشد سریع و خوبی داشتند . وقتی شما با جاوا اسکریپت کدنویسی میکنید در حقیقت روی یک زبان اساسی کدنویسی میکنید که اکثر برنامه نویس ها آنرا میفهمند . جاوا اسکریپت محبوب ترین تکنولوژی توسعه ی وب است پس همیشه جامعه ی اطراف آن شلوغ است و مخاطبان زیادی دارد . یکی شدن زبان برنامه نویسی فرانت اند و بک اند سایت شما اول اینکه باعث خلاقیت تیم شما و بعد باعث صرفه جویی در وقت و هزینه ها خواهد شد .
  2. مزیت بعدی یک زبان non-blocking event-driven هست فکر کنید یک ترافیک فله ای روی سرور اتفاق بیوفتد ، جاوا اسکریپت به خوبی میتواند با استفاده از یک ترد واحد event loop ، ترافیک همزمان را کنترل کند . اساسا جاوااسکریپت برای سایت های شلوغ و پرترافیک بهتر است . وقتی یک درخواستی برای دسترسی به یک منبعی به هر دلیلی از بین میرود جاوااسکریپت منتظرش نمی ماند و به کارهای دیگر خود میرسد . جاوا اسکریپت زمانی که نتیجه ی درخواست آمد به آن میبپردازد . همه ی این کارها روی پردازش یک نخ یا ترد انجام میگیرد و به همین دلیل باعث میشود node.js هم منابع سروری کمتری نیاز داشته باشد .

خب express.js چطور در همه ی این موارد کاربرد دارد ؟‌ express.js تمام ابزارهای مورد نیاز برای کار با یک سرور مبتنی بر HTTP را در اختیار توسعه دهنده های وب قرار میدهد .

قابلیت های اکسپرس به توسعه دهنده های وب آزادی میدهد ، express.js تنها یک ماژول برای Node.js نیست و شما میتوانید هر کامپوننت مورد نیاز را به آن اضافه کنید . به جای اینکه در یک قالب و سبکی ثابت بمانید express.js با موارد زیر میتواند تعامل داشته باشد و همکاری کند :‌

به راحتی شما میتوانید با یک کامپوننت template کار کنید و سپس express خود را به یک سرور API تبدیل کنید . خروجی چیزی نخواهد بود جز JSON

با ذخیره سازی داده ها توسط express نیز از آزادی بهره مند خواهید شد . شما میتوانید از یک ماژول Node به نام Mongoose استفاده کنید و میتوانید express خود را به MongoDB وصل کنید !

ضمنا شما میتوانید به RedisSQLPostgres  هم وصل شوید .

خب شما اینجا آزادی دارید که کدام دیتابیس را برای کارهای خود انتخاب کنید چیزی که مناسب هست را انتخاب کنید برخلاف فریمورکی مثل Django که با پایگاه داده ی غیر رابطه ای مثل MongoDB کار نمیکند ، برای این مورد راه حل وجود دارد ولی پشتیبانی رسمی مهم است .

توسعه دهندگان میتوانند express را دقیقا بر اساس نیاز خودشان شخصی سازی بکنند . میتوانند کامپوننت های اضافی را حذف یا کامپوننت های مورد نیاز جدیدی را اضافه کنند .

شما تقریبا میتوانید هر چیزی را تولید کنید از یک سرور محتوای ثابت گرفته تا  RESTful APIs  برای فریمورک های Model-View-Controller (MVC)

جمع بندی و خلاصه ی نوشته های بالا :‌

خب پس فهمیدیم که Express.js یک فریمورک برای اپلیکیشن های تحت وب است که API ساده ای برای ساخت وب سایت ها ، وب اپلیکیشن ها و بک اند ها است .

با ExpressJS دیگر نیاز نیست نگران پروتکل های سطح پایین ، پردازش ها و ... باشید .

این فریمورک بسیار انعطاف پذیر است و ماژول های فراوانی برایش روی npm وجود دارد که مستقیما میتوانید انها را در  Express  وارد کنید .

Express توسط  TJ Holowaychuk توسعه داده شده است و توسط Node.js نگهداری و پشتیبانی میشود .

چرا Express ؟‌

بر خلاف رقبایش مثل Rails و Django که روش های خاصی دارند و مستبد هستند Express هیچ روشی را بعنوان بهترین روش پیشنهاد نمیکند . Express بسیار انعطاف پذیر و ماژولار است .

Pug

Pug که قبلا با اسم Jade شناخته میشد یک زبان دقیق برای نوشتن قالب های HTML است .

  • تولید HTML
  • پشتیبانی از کد dynamic
  • پشتیبانی مجدد از قابلیت استفاده (DRY)

این یکی از محبوب ترین زبان قالب است که با Express استفاده می شود.

MongoDB و Mongoose

MongoDB یک پایگاه داده ، اوپن سورس ، مقیاس پذیر و document database هست که برای توسعه راحت ساخته شده است .

همچنین برای ذخیره سازی اطلاعات استفاده میشود

Mongoose یک API برای کلاینت node.js است که دسترسی پایگاه داده توسط Express را راحت تر میکند .


برنامه نویسی بک اندnodejsexpress jsفریمورک nodejsساخت restfull api
علاقه اصلی من برنامه نویسی اندروید هستش اما نزدیک به یک ساله که وارد دنیای وب و بک اند شدم و عاشق nodejs و mern stack هستم
شاید از این پست‌ها خوشتان بیاید