شبکه

مقاله‎‎ای ویژه طرف‌داران جاوااسکریپت و طراحان وب

راهنمای جامع چهارچوب‌های برتر Node.js (بخش دوم)

راهنمای جامع چهارچوب‌های برتر Node.js (بخش دوم)
Node.js یک محیط اجرایی بر پایه موتور جاوااسکریپت V8 کروم است که برای اجرای اپلیکیشن‎های محیط دسکتاپ و سرور بهینه‎سازی شده است. Node.js از یک مدل ورودی/ خروجی non-blocking رویدادمحور استفاده می‎کند که با کمترین تأخیر و بیشترین میزان بازدهی نسبت به سرورهای رشته‎ای مثل Apache, IIS و سرور جاوای متعارف به درخواست‎ها پاسخ می‎دهد. هرچند شما می‎توانید تنها از طریق کدنویسی Node.js یک وب سرور یا اپلیکیشن را پیاده‎سازی کنید، اما یک فریم‎ورک می‎تواند میزان کدی را که باید بنویسید تا حد قابل ملاحظه‎ای کاهش دهد. در این راهنما، قصد داریم فریم‎ورک‎های در دسترس برای توسعه‎دهندگان Node.js را در دو بخش مجزا به شما معرفی کنیم. بخش نخست این راهنما را در شماره قبل مشاهده کردید و در این شماره بخش دوم و پایانی آن را می‌خوانید.

برای مطالعه قسمت اول این مقاله روی لینک زیر کلیک کنید

مطلب پیشنهادی

راهنمای جامع چهارچوب‌های برتر Node.js
ویژه طرف‌داران جاوااسکریپت و طراحان وب

راهنمای جامع چهارچوب‌های برتر Node.js


فریم‎ورک‎های همه‌جانبه برای Node.js

Catberry.js

Catberry یک فریم‌ورک چندوجهی است که با استفاده از عناصر، معماری لایه داده Flux و رندرينگ موازی بهینه شده برای ساخت اپلیکیشن‎های یونیورسال از آن استفاده می‎شود. این نوع از اپلیکیشن‎ها از یک کد پایه یکسان در هر دو سمت سرور و کلاینت استفاده می‎کنند. Catberry هم‌زمان از SEO نیز پشتیبانی می‎کند. یک خزنده جست‌وجوگر یک صفحه کامل را از سرور دریافت می‎کند و کل محتوای اپلیکیشن از URL آن بازیابی می‎شود. 

Feathers

Feathers یک REST و لایه API بی‌درنگ برای اپلیکیشن‎های مدرن است. توسعه‌دهنده آن مدعی است می‎توانید از آن برای ساخت یک دقیقه‎ای نمونه‎های اولیه و ساخت یک روزه محصولات آماده و API REST استفاده کنید. البته چنین ادعایی تنها مختص به Feathers نیست.
از جمله ویژگی‎های برجسته Feathers این است که خدمات سازگاری را فراهم می‎کند که شما با استفاده از آن می‎توانید به تمام پایگاه‌های داده معروف متصل شوید و با یک رابط یکپارچه از هر نوعی که باشد از آن‌ها کوئری بگیرید. Feathers به طور خودکار API REST را برای تمام خدمات شما فراهم می‎کند و می‎تواند خطاهای مرتبط را نیز به کلاینت ارسال کند. Feathers برای عملکرد آنی از WebSockets پشتیبانی می‎کند و می‎توان از آن برای احراز هویت email/password, OAuth و Token (JWT) استفاده کرد. Feathers CLI نیز به شما امکان می‎دهد تا اپلیکیشن، کد پایگاه داده، تأیید صلاحیت و خدمات مشابه را توليد کنید.

Horizon

Horizon سکویی برای ساخت اپلیکیشن‎های بی‌درنگ است. این فریم‌ورک می‎تواند امکان تولید، استقرار و مدیریت یک اپلیکیشن کاربردی کامل یا اپلیکیشن‎های موبایل وب مبتنی بر جاوا اسکریپت را به‌سرعت فراهم کند. Horizon با یکپارچه شدن با Node.js به‌سادگی گسترش پیدا می‎کند و امکان ساخت اپلیکیشن‎های مدرن و پیچیده را فراهم می‎کند.
Horizon تحت RethinkDB ساخته شده و شامل چهار بخش مختلف است: سرور Horizon، کتابخانه کلاینت Horizon شامل یک سرور میانی که یک API/protocol ساده را برای اپلیکیشن‎ها فراهم می‎کند، Horizon CLI شامل یک کتابخانه کلاینت جاوا اسکریپت که پروتکل سرور Horizon را برای توسعه راحت API فراهم می‎کند و یک ابزار خط فرمان که به توسعه و استقرار چهارچوب این فریم‌ورک کمک می‎کند. Horizon در حال حاضر از چهار API تشکیل شده است: Subscribe که یک API استریم برای ساخت مستقیم اپلیکیشن‎های بی‌درنگ از مرورگر بدون نیاز به کدنویسی است. Auth که یک API برای اتصال به تأمین‌کنندگان سیستم احراز هویت مثل فیسبوک، گوگل و گیت‎هاب است. Identity که یک API برای فهرست‌بندی و مدیریت حساب‎های کاربری است و Permissions که یک مدل امنیتی است که به توسعه‌دهندگان اجازه می‎دهد تا از داده‎ها در مقابل دسترسی غیرمجاز محافظت کنند.

KeystoneJS

KeystoneJS یک سیستم مدیریت محتوا  (CMS)تحت Node.js و فریم‌ورک اپلیکیشن وب ساخته شده در وب سرور Express است که از طریق Mongoose به پایگاه داده MongoDB متصل می‎شود. Keystone ساخت وب‌سایت و اپلیکیشن را ساده‎تر می‎کند و به یک رابط کاربری خودکار مدیریتی مجهز است. ساده‎ترين راه برای شروع کار با Keystone استفاده از راه‌انداز Yeoman است. همان گونه که در فهرست 1 مشاهده می‌کنید.

$ npm install -g generator-keystone
$ yo keystone

فهرست 1

روش دیگر برای استفاده از Keystone در پروژه‎های موجود یا ساخت یک پروژه جدید (بدون Yeoman) به کار بردن عبارت keystone: “^0.3.9” در آرایه‎های وابسته فایل package.json شما و اجرای فرمان npm install از طریق ترمینال است. راه‌انداز yo در Keystone یک مدل کاربری، سیستم احراز هویت، سشن‎ها (که در صورت عدم نیاز می‎توانید آن‌ها را غیرفعال کنید)، مسیرها، میان‌افزار، قالب‎های Jade و رابط گرافیکی مدیریتی را فعال می‎کند. Keystone تمام جنبه‎های طراحی و ساخت سایت شما را در هر دو سمت کلاینت و سرور پوشش نمی‎دهد، اما شما می‎توانید از jQuery, Angular, React یا ماژول‎های CSS و هر نوع قالب Node.js پشتیبانی شده توسط Express نیز استفاده کنید. الگوهای رایج در KeystoneJS شامل وبلاگ، گالری عکس و فرم‎های تماس است.

شکل 1

مطلب پیشنهادی

10 ویژگی جدید و جذاب جاوااسکریپت برای عاشقان وب
تکنیک‌های کاربردی ES6

10 ویژگی جدید و جذاب جاوااسکریپت برای عاشقان وب

MEAN.io

MEAN یک فریم‌ورک برای ساخت اپلیکیشن با MongoDB, Express, Angular و Node.js است. طراحی آن به ‌گونه‎ای انجام شده است تا شما بتوانيد به‌سرعت و سازماندهی شده توسعه یک اپلیکیشن وب مبتنی بر MEAN را با ماژول‎های مفیدی مثل Mongoose و Passport آغاز کنید. 
فریم‌ورک MEAN.io در اصل قصد دارد تا نقاط اتصال بین اجزای فریم‌ورک‎ها را مدیریت و مشکلات رایج یکپارچه‌سازی را برطرف کند. آخرین نسخه از MEAN شامل یک CLI برای راه‌اندازی، مدیریت و به‎روزرسانی اپلیکیشن‎های MEAN شما است.

MEAN.js

MEAN.js یک راهکار جاوا اسکریپت تمام و کمال برای ساخت سریع، افزایش کارایی و قابلیت نگهداری اپلیکیشن‎های وب با استفاده از MongoDB, Express, Angular و Node.js است. ایده ساخت آن برای برطرف کردن مشکلات رایج در اتصال این فریم‌ورک‎ها و کمک به توسعه‌دهندگان برای استفاده از شیوه‎های بهتر در زمان با اجزای رایج جاوا اسکریپت است. در حال حاضر سه کتاب و یک ویدیوی آموزشی درباره توسعه با MEAN.js موجود است.

Meteor

Meteor یک سکوی کامل برای توسعه اپلیکیشن است که امکان ساخت اپلیکیشن‎های موبایل و وب را تماماً با استفاده از کدهای جاوا اسکریپت به‌سادگی فراهم می‎کند. علاوه بر امکان ارسال HTML در اتصالات، Meteor داده را از سرور برای پردازش در کلاینت نیز ارسال می‎کند. همچنین، به غیر از اجرای مستقیم، Meteor می‎تواند با Angular و React نیز برای پشتیبانی از الگوی MVC یکپارچه شود. Meteor شبیه به Express است با این تفاوت که روی Node.js ساخته می‎شود و از قالب‎های Jade و Blaze نیز پشتیبانی می‎کند. Meteor به شما امکان می‎دهد تا به‌سرعت نمونه‎های اولیه از پروژه خود را آماده‌سازی کنید و کدهایی سازگار با سکو‎های مختلف (وب، اندرويد و iOS) تولید کنید. این فریم‌ورک با MongoDB یکپارچه می‎شود و از پروتکل داده توزیع شده استفاده می‎کند. در سمت کلاینت، Meteor به jQuery وابسته است و می‎توان آن را با هر نوع کتابخانه JavaScript UI استفاده کرد. Meteor توسطMeteor Development Group توسعه داده شده است.

Meatier

Meatier در اصل برای وارد کردن معماری کلی و قابلیت‎های Meteor به یک پروژه جزء‌محور در نظر گرفته شده است. برای مثال Meteor به‌شدت به MongoDB و Simple Schema گره خورده است، اما در عوض Meatier از RethinkDB و GraphQL استفاده می‎کند. Meteor سیستم اختصاصی خود را دارد و Meatier از Webpack استفاده می‎کند. کلاینت‎های Meatier به React وابسته هستند و سرورهای Meatier به Express و SocketCluster نیاز دارند. علاوه بر اختلافاتی که بین این دو وجود دارد، آنچه مسلم است این است که Meatier یک نسخه به‎روزرسانی شده و احتمالاً بهتر از طراحی‎های Meteor است.

Seneca

معماری‎های میکروسرویس بسیار مطرح هستند. چالش پیش روی ساخت اپلیکیشن‎هایی که از میکروسرویس‎ها استفاده می‎کنند اغلب به چگونگی پیوستن این میکروسرویس‎ها به یکدیگر مربوط می‎شود. Seneca یک راهکار ماژولار کارآمد برای متصل کردن میکروسرویس‎هایی است که مبتنی بر پیغام‎ها، تطبیق الگو، استقلال نقل و انتقال و اکوسیستم افزونه‎ها هستند که همگی تحت Node.js ساخته می‎شوند. توجه داشته باشید كه اگرچه شما می‎توانید Seneca را به API سرویس وب خود متصل کنید، اما نمی‎توان به آن به‌عنوان یک فریم‌ورک وب نگاه کرد.
پیغام‎های Seneca موضوعات JSON هستند و می‎توانند هر ساختار داخلی که مورد نظر شما است را داشته باشند. پیغام‎ها را می‎توان از طریق HTTP/S, TCP، صفحه پیغام، خدمات عضویت یا سایر نقل و انتقالات پشتیبانی شده ارسال کرد. شما به‌عنوان نویسنده یک سرویس Seneca تنها پیغام‎ها را به دنیای بیرون ارسال می‎کنید و نیازی ندارید که بدانید کدام سرویس‎ها آن‌ها را دریافت می‎کنند. برای دریافت پیغام‎ها شما الگوهای متناسب با سرویس خود را مشخص می‎کنید و Seneca (با کمی‎ تنظیمات که شما انجام می‎دهید) اطمینان حاصل می‎کند که هر پیغام فرستاده شده توسط دیگران که با این الگوها مطابقت دارد دریافت می‎شود. 

مطلب پیشنهادی

اکوسیستم Node.js چیست و چه قابلیت‎هایی دارد؟
یک محیط اجرایی چندسکویی

اکوسیستم Node.js چیست و چه قابلیت‎هایی دارد؟

SocketCluster

SocketCluster یک موتور سرویس سریع، HTTP گسترش‌پذیر و بی‌درنگ است که به شما اجازه می‎دهد خدمات لحظه‎ای، چندپردازشی را با استفاده از توان پردازنده‎های چندهسته‎ای ایجاد کنید. این فریم‌ورک محدودیت اجرای سرورهای Node.js به‌صورت تک‌رشته‎ای را برطرف می‎کند. SocketCluster همچنین می‎تواند از طریق Kubernetes به‌صورت میزبانی‎های چندگانه اجرا شود. SocketCluster از اتصالات مستقیم کلاینت سرور (مثل Socket.io) و ارتباطات گروهی از طریق انتشار و اشتراک کانال‎ها پشتیبانی می‎کند.

SocketStream

SocketStream فریم‌ورکی برای اپلیکیشن‎های وب بی‌درنگ است که از امکانات ارتباطی بین کلاینت و سرور WebSocket بهره می‎برد. SocketStream تمام HTML, CSS و کدهای سمت کلاینتی که اپلیکیشن شما در زمان اولین بازدید کاربر از سایت شما به آن نیاز دارد را ارسال می‎کند و تمام این داده‎ها در زمان اجرا در وضعیت تولید به طور خودکار فشرده خواهند شد. بعد از آن تمام داده‎های ارسال و دریافت شده اپلیکیشن از طریق WebSocket سامان‌دهی می‎شود. در حالت طبیعی این کار با فرمت JSON RPC انجام خواهد شد، اما SocketStream به شما اجازه می‎دهد مطابق با وظایف در دست انجام از پاسخ‌دهنده‎های درخواست مختلف استفاده کنید. پلاگین‎های SocketStream از فرم‌دهنده‎های کد تا افزونه‎های فریم‌ورک سمت کلاینت و پلاگین‎های توسعه رفتارمحور را شامل می‎شود. SocketStream برای ساخت اپلیکیشن‎های بی‌درنگ گزینه مناسبی است، اما برای ساخت وب‌سایت‎هایی که برای مقاصد سئو به وجود URL نیاز دارند چندان مناسب نیست.

فریم‌ورک‎های REST API برای Node.js

ActionHero

ActionHero یک API سرور چندوجهی با قابلیت کلاسترهای یکپارچه شده و وظایف تأخیری است. هدف ActionHero ساخت یک جعبه ابزار برای تولید API چند بار مصرف و گسترش‌پذیر است. کلاینت‎های متصل شده به سرور ActionHero می‎توانند از این API و محتوای استاتیک مصرف و با یکدیگر ارتباط برقرار کنند. ActionHero از امکانات پشتیبانی از کلاسترها، وظایف پس‌زمینه وغیره برخوردار است. ActionHero از وب کلاینت‎های HTTP/S، TCP (Telnet) و سوکت کلاینت‎های TLS پشتیبانی می‎کند و با وب‎سوکت کلاینت‎های HTTP/S سازگار است. 
سرورهای ActionHero می‎توانند هم‌زمان درخواست‎ها و وظایف را پردازش کنند (برای مثال، اقدامات تأخیری مثل ارسال ایمیل یا کارهای پس‌زمینه).  همچنین سرورهای ActionHero می‎توانند روی یک کلاستر (روی یک یا چند ماشین مختلف) اجرا شوند تا بتوانند بار ترافیک را بهتر اداره کنند. در راهنمای آموزشی ActionHero ساخت یک وبلاگ API و سایت، چت روم و یک سرور سفارشی که ارستریم فیلتر شده توییتر را به چت روم ارسال می‎کند آموزش داده می‎شود.

Frisby

Frisby یک فریم‌ورک آزمايش REST API است که تحت Node.js و Jasmine ساخته شده است. آزمون‎های Frisby با frisby.create آغاز شده و با get, post, put, delete یا head ادامه پیدا می‎کند و با toss خاتمه می‎یابد تا نتیجه آزمايش خصوصیات Jasmine تولید شود. Frisby از چندین ابزار کمکی‎ داخلی برای آزمایش بهره مي‌برد که از آن جمله می‎توان به expectStatus برای آزمایش ساده‎تر کدهای وضعیت HTTP، expectJSON برای آزمایش کلیدها و مقادیر JSON و expectJSONTypes برای آزمایش نوع مقادیر JSON اشاره کرد.

Restify

Restify یک ماژول Node.js است که به طور خاص برای فراهم کردن امکان ساخت سرویس‎های وب REST طراحی شده است. این فریم‌ورک برای ساخت اپلیکیشن‎های مرورگر در نظر گرفته نشده است؛ بنابراین، فاقد پشتیبانی از قالب‌سازی و رندرينگ موجود در Express است. در عوض شما این امکان را خواهید داشت که روی تعاملات HTTP و زمان تأخیر اپلیکیشن‎های خود کنترل کامل داشته باشید.

مطلب پیشنهادی

 پرونده ویژه " جاوااسکریپت آینده است"

دانلود کنید: پرونده ویژه " جاوااسکریپت آینده است"

LoopBack

LoopBack یک فریم‌ورک قابل گسترش Node.js است که این امکان را برای شما فراهم می‎کند تا بدون نیاز به کدنویسی REST API داینامیک بسازید. می‎توان آن را به پایگاه‌های داده Oracle, MySQL, PostgreSQL, SQL Server, MongoDB, SOAP و سایر REST API دیگر متصل کرد. LoopBack به شما اجازه می‎دهد برای اپلیکیشن‎های موبایل از فایل سرویس‎ها و geolocation استفاده کنید و به‌سادگی اپلیکیشن‎های کلاینت مورد استفاده اندرويد، iOS و Angular SDK بسازید. IBM و گروه StrongLoop که ساخت LoopBack را برعهده دارند می‎گویند خود را متعهد به حفظ و بهبود پروژه منبع باز LoopBack می‎دانند.

Fortune.js

Fortune.js یک لایه انتزاعی پایگاه داده است که قابلیت‎هایی در سطح اپلیکیشن را برای Node.js و مرورگرهای وب فراهم می‎کند. این فریم‌ورک یک رابط مشترک برای پایگاه‌های داده و همین طور امکان به‎روزرسانی و یکپارچگی ارجاعی را فراهم می‎کند.  Fortune.js به‌ویژه برای نگهداری از پایگاه‌های داده ارتباطی دوطرفه، به‌اشتراک‌گذاری مدل‎های داده یکسان روی سرور و کلاینت و ساخت اپلیکیشن‎هایی که نیاز به گزينه‎های ذخيره‌سازی پرتابل دارند بسیار سودمند است. به طور پیش فرض داده در حافظه (و IndexedDB برای مرورگر) قرار خواهد گرفت. در صفحه پلاگین‎های Fortune.js قابلیت‎های اضافه دیگری مثل شبکه‌سازی (HTTP, WebSockets)، مبدل‎های پایگاه‌ داده و فرمت‎های سلسله مراتبی وجود دارد.

Nest

Nest یک فریم‌ورک وب برای Node.js است که به شما کمک می‎کند تا اپلیکیشن‎های کارآمد و گسترش‌پذیر را بسازید. این فریم‌ورک با TypeScript ساخته شده است (اما با ES6 نیز سازگار است) و از مفاهیم برنامه‌نویسی شی‌ءگرا استفاده می‎کند. Nest از Express و Socket.io استفاده می‎کند و IoC مخصوص به خود را دارد. ساختار فرامین Nest شبیه به Angular است با این تفاوت که از مسیرهای REST استفاده می‎کند.

نویسنده: 
محسن آقاجانی
منبع: 
Info World
دسته بندی: 
کارگاه
تاریخ انتشار: 
26/10/1396 - 12:35
برچسب: 
Node.JS - فریم ورک - جاوا اسکریپت - راهنمای جامع Node.JS - Catberry.js

نشانی منبع:https://www.shabakeh-mag.com/workshop/11096/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%AC%D8%A7%D9%85%D8%B9-%DA%86%D9%87%D8%A7%D8%B1%DA%86%D9%88%D8%A8%E2%80%8C%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D8%AA%D8%B1-nodejs-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85