برای مطالعه قسمت اول این مقاله روی لینک زیر کلیک کنید
فریمورکهای همهجانبه برای 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
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 (با کمی تنظیمات که شما انجام میدهید) اطمینان حاصل میکند که هر پیغام فرستاده شده توسط دیگران که با این الگوها مطابقت دارد دریافت میشود.
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 استفاده میکند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟