برو به محتوای اصلی

بهترین ساختار پروژه Node برای یک پروژه Backend که مبتنی بر REST هست چیه؟ (منظورم پوشه‌بندی فایل‌ها با رویکرد Saclable بودن هست)

من کجام؟ اینجا کجاست؟

در جوابکو می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربتون رو به اشتراک بگذارید!

پویا جباری‌‌ثانی ، توسعه دهنده ارشد وب (جاوا اسکریپت)

راستش من تجربه‌ی کار با فریم‌ورک‌های expressJs و hapiJs رو دارم و به شخصه اکسپرس رو ترجیح میدم و اما ساختار پروژه:

کاری که من خودم انجام میدم و حاصل تست‌ها و تجربه‌ی دو ساله‌ام توی برنامه‌نویسی با NodeJs است اینه که بیایم و ساختار MVC رو پیاده‌سازی بکنیم، به این صورت که:

  • یک پوشه برای Modelهامون داشته باشیم.
  • یک پوشه برای Controllerها (که در واقع route هارو در بر میگیره).
  • یک پوشه برای Viewها (که کل فریم‌ورک فرانت اندمون، که میتونه react، انگولار یا هر چیز دیگه‌ای باشه رو در بر میگیره) -> البته این قسمت میتونه کاملا جدا از اون دو تای دیگه و در یک پروژه‌ی جداگانه هم باشه (که قابلیت اجرا کردن توی سرور جداگانه رو داشته باشه).
  • یک فایل اصلی برای base پروژه و اجرای سرور مثل app.js یا index.js.
  • یک پوشه برای فایل‌های استاتیک به نام asset یا public.

 

و اما پیاده‌سازی RESTful API:

 راستش پیاده‌سازی route‌ها به صورت RESTful هم میتونه به چند صورت انجام بگیره، توی ناد جی‌اس و به طور دقیق‌تر توی اکسپرس که من حالت زیر رو ترجیح می‌دم:

  • ابتدا میایم و یک پوشه با نام v1 داخل Controller ایجاد می‌کنیم برای ورژن‌بندی API همون ابتدای کار.
  • سپس بخش‌های اصلی سایت (و حتی app) رو مشخص می‌کنیم و واسه هر یک یه پوشه ایجاد می‌کنیم توی v1؛ مثلا میایم میگیم که سایت ما یه بخش اصلی داره، پس این یه پوشه (mainsite) یک بخش پنل مدیریت داره، این هم یه پوشه (adminpanel) و مثلا یه سری هم API لازم داریم برای اپلکیشن موبایل‌مون، پس این هم یه پوشه (app).
  • بعد میایم و داخل اون پوشه‌هایی که ساختیم فایل‌هامون رو می‌سازیم و نکته‌ی مهم اینکه داخل هر یک از اون پوشه‌ها یک فایل index.js ایجاد می‌کنیم و API‌هایی رو که ساختیم رو توش یکجا لود می‌کنیم و خروجی می‌گیریم.
  • تا یادم نرفته اینو بگم که یک فایل index.js هم داخل خود v1 ایجاد می‌کنیم برای جمع کردن route‌های مختلف یکجا (همون index.js‌های ساخته شده تو هر پوشه) و export کردن برای استفاده‌شون توی فایل اصلی سرور.
  • در نهایت هم با کد زیر توی فایل اصلی سرور routeهامون رو لود می‌کنیم:

app.use(require('./controller/v1'));

 

پیشنهاد می‌کنم این مقاله ۳۵رو هم در رابطه با اصول طراحی RESTful API مطالعه کنی.

همچنین سعی کردم اینجا به شکل خیلی ساده و خلاصه توضیح بدم و اگر سوال بیشتر داشتی می‌تونی با خود من در ارتباط باشی. (pouyajabbarisani@gmail.com۳۳ و وبسایتم۵۶

۱۴

فریمورک‌هایی مثل loopback۴۳، hapi۵۰، sails۴۴ رو یه نگاه بندازید. هر کدوم رویکرد متفاوتی دارند ولی به اندازهٔ کافی شناخته شده و معتبر هستند. من خودم express۳۸ رو به همراه rest۴۳ که یه جنریتور yeoman۴۳ هست ترجیح می‌دم!

۹
مهرشاد درزی ، توسعه دهنده وردپرس | Wordpress Developer

https://github.com/sahat/hackathon-starter۴۶

البته بازم پیشنهاد میکنم که از فریم‌ورک‌هایی مثل vue یا react استفاده کنید برای پروژه.

۵

آمار سوال

۱۱۲ نمایش
۰ دنبال‌کننده
سال گذشته پرسیده شده
آمار بازدید در این ماه

سوال رو به اشتراک بگذار