آموزش AdonisJS برای توسعه backend

تاریخ: 1404/7/15 ساعت: 0:15 بازدید: 41

AdonisJS یک فریم ورک Node.js است که برای توسعه سریع و پایدار برنامه های سمت سرور (Backend) طراحی شده است. این فریم ورک با ارائه ابزارها و الگوهای معماری مدرن، به توسعه دهندگان کمک می کند تا با تمرکز بیشتری بر منطق کسب وکار، پروژه های خود را پیش ببرند. اگر به دنبال یک فریم ورک قدرتمند و در عین حال ساده برای توسعه APIها و برنامه های وب هستید، AdonisJS می تواند گزینه مناسبی برای شما باشد.

چرا AdonisJS؟

AdonisJS دارای مزایای متعددی است که آن را از سایر فریم ورک های Node.js متمایز می کند:

  • ساختار منظم و قابل نگهداری: AdonisJS یک ساختار پروژه منظم و استاندارد ارائه می دهد که مدیریت و نگهداری کد را آسان تر می کند.
  • ابزارهای قدرتمند CLI: خط فرمان (CLI) AdonisJS ابزارهای قدرتمندی برای ایجاد پروژه ها، مدل ها، کنترلرها و سایر اجزای برنامه ارائه می دهد.
  • ORM قدرتمند (Lucid): Lucid یک ORM (Object-Relational Mapper) قدرتمند است که تعامل با پایگاه داده را ساده تر می کند.
  • سیستم احراز هویت قوی: AdonisJS یک سیستم احراز هویت (Authentication) قوی و قابل تنظیم ارائه می دهد.
  • پشتیبانی از WebSocket: AdonisJS از WebSocket برای ایجاد برنامه های Real-time پشتیبانی می کند.
  • جامعه فعال: AdonisJS دارای یک جامعه فعال از توسعه دهندگان است که به اشتراک گذاری دانش و حل مشکلات کمک می کنند.

پیش نیازها

قبل از شروع کار با AdonisJS، مطمئن شوید که پیش نیازهای زیر را دارید:

  • Node.js: نسخه 16 یا بالاتر
  • npm یا Yarn: برای مدیریت بسته ها
  • یک ویرایشگر کد: مانند VS Code, Sublime Text, Atom

شروع یک پروژه جدید

برای ایجاد یک پروژه جدید AdonisJS، مراحل زیر را دنبال کنید:

  1. یک ترمینال (command prompt) باز کنید.
  2. دستور زیر را برای ایجاد یک پروژه جدید اجرا کنید:
                    npm init adonisjs@latest hello-world
                
  3. به دایرکتوری پروژه بروید:
                    cd hello-world
                
  4. سرور توسعه را اجرا کنید:
                    node ace serve --watch
                
  5. به آدرس http://localhost:3000 در مرورگر خود بروید تا صفحه خوش آمدگویی AdonisJS را ببینید.

ساختار پروژه AdonisJS

یک پروژه AdonisJS دارای ساختار دایرکتوری زیر است:

  • app: شامل کد اصلی برنامه شما، مانند کنترلرها، مدل ها، میان افزارها و سرویس ها.
  • config: شامل فایل های پیکربندی برنامه، مانند تنظیمات پایگاه داده، احراز هویت و غیره.
  • contracts: شامل تعریف اینترفیس ها و تایپ های TypeScript برای بهبود قابلیت نگهداری و توسعه پذیری.
  • database: شامل فایل های migration و seed برای مدیریت پایگاه داده.
  • providers: شامل Service Providers که برای ثبت سرویس ها و وابستگی ها استفاده می شوند.
  • public: شامل فایل های استاتیک مانند CSS، JavaScript و تصاویر.
  • resources: شامل viewها (templates) و فایل های زبان (localization).
  • routes: شامل تعریف مسیرها (routes) برای درخواست های HTTP.
  • start: شامل فایل های بوت استرپ برنامه.
  • tests: شامل تست های واحد و integration.

Routing در AdonisJS

Routing در AdonisJS برای تعریف نحوه پاسخگویی برنامه به درخواست های HTTP استفاده می شود. فایل `routes/web.ts` شامل تعریف مسیرهای وب و فایل `routes/api.ts` شامل تعریف مسیرهای API است.

مثال:

        
        import Route from '@ioc:Adonis/Core/Route'

        Route.get('/', async () => {
          return { hello: 'world' }
        })

        Route.get('/users/:id', 'UsersController.show')
        
    

در مثال بالا، مسیر `/` به یک تابع anonymous متصل شده است که یک پاسخ JSON برمی گرداند. مسیر `/users/:id` به متد `show` در کنترلر `UsersController` متصل شده است.

کنترلرها (Controllers)

کنترلرها مسئول دریافت درخواست ها، پردازش داده ها و برگرداندن پاسخ هستند. کنترلرها معمولاً در دایرکتوری `app/Controllers/Http` قرار دارند.

مثال:

        
        import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'

        export default class UsersController {
          public async show({ params }: HttpContextContract) {
            const user = await User.find(params.id)
            return user
          }
        }
        
    

در مثال بالا، متد `show` در کنترلر `UsersController` درخواست را دریافت می کند، کاربر را با استفاده از ORM Lucid پیدا می کند و کاربر را به عنوان پاسخ برمی گرداند.

مدل ها (Models) و ORM Lucid

Lucid یک ORM قدرتمند است که تعامل با پایگاه داده را ساده تر می کند. مدل ها نمایانگر جداول پایگاه داده هستند و امکان انجام عملیات CRUD (Create, Read, Update, Delete) را فراهم می کنند. مدل ها معمولاً در دایرکتوری `app/Models` قرار دارند.

مثال:

        
        import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'

        export default class User extends BaseModel {
          @column({ isPrimary: true })
          public id: number

          @column()
          public username: string

          @column()
          public email: string
        }
        
    

در مثال بالا، مدل `User` دارای سه ستون `id`, `username` و `email` است.

میان افزارها (Middleware)

میان افزارها قطعه کد هایی هستند که قبل یا بعد از اجرای یک کنترلر اجرا می شوند. از میان افزارها می توان برای انجام کارهایی مانند احراز هویت، اعتبارسنجی داده ها و ثبت لاگ استفاده کرد.

برای مثال، یک میان افزار برای احراز هویت:

        
        import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
        import User from 'App/Models/User'

        export default class AuthMiddleware {
          public async handle({ auth, request }: HttpContextContract, next: () => Promise) {
            // Authenticate request
            await auth.authenticate()
            await next()
          }
        }
        
    

اعتبارسنجی (Validation)

اعتبارسنجی داده ها قبل از ذخیره در پایگاه داده بسیار مهم است. AdonisJS با استفاده از Validator، یک سیستم قوی برای اعتبارسنجی داده ها ارائه می دهد.

        
        import { schema, rules } from '@ioc:Adonis/Core/Validator'
        import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'

        export default class PostsController {
          public async store({ request }: HttpContextContract) {
            const payload = await request.validate({
              schema: schema.create({
                title: schema.string({ trim: true }, [
                  rules.maxLength(255)
                ]),
                body: schema.string({ trim: true })
              })
            })

            // Create post
          }
        }
        
    

تست کردن

تست کردن بخش مهمی از توسعه نرم افزار است. AdonisJS از ابتدا برای تست پذیری طراحی شده است و ابزارهای لازم را برای نوشتن تست های واحد و ادغام فراهم می کند.

پرسش های متداول (FAQ)

AdonisJS چیست؟
AdonisJS یک فریم ورک Node.js برای توسعه برنامه های Backend با تمرکز بر بهره وری و تجربه توسعه دهنده است.
آیا AdonisJS برای پروژه های بزرگ مناسب است؟
بله، AdonisJS با ساختار منظم و ابزارهای قدرتمند، برای پروژه های بزرگ و پیچیده مناسب است.
چگونه می توانم به جامعه AdonisJS کمک کنم؟
شما می توانید با مشارکت در مستندات، پاسخ دادن به سوالات در انجمن ها، و گزارش باگ ها به جامعه AdonisJS کمک کنید.
چگونه پایگاه داده را به AdonisJS متصل کنم؟
شما می توانید با استفاده از ORM Lucid و پیکربندی فایل `config/database.ts`، پایگاه داده را به AdonisJS متصل کنید. AdonisJS از پایگاه داده های مختلفی مانند MySQL, PostgreSQL, SQLite و MSSQL پشتیبانی می کند.
چگونه یک API در AdonisJS ایجاد کنم؟
برای ایجاد یک API، شما باید یک کنترلر و یک مسیر (route) تعریف کنید. مسیر باید به یک متد در کنترلر متصل شود که درخواست را پردازش و پاسخ JSON را برمی گرداند.
چگونه خطاهای برنامه را مدیریت کنم؟
AdonisJS دارای یک سیستم مدیریت خطا (Error Handling) است که به شما امکان می دهد خطاهای برنامه را به طور موثر مدیریت کنید. شما می توانید از middlewareها و exception handlerها برای ثبت لاگ خطاها و نمایش پیام های مناسب به کاربران استفاده کنید.

این آموزش تنها یک مقدمه بر AdonisJS بود. برای یادگیری بیشتر، به مستندات رسمی AdonisJS مراجعه کنید.

آیا نیاز به کمک در توسعه Backend با AdonisJS دارید؟ با ما تماس بگیرید! 09190994063 - 09376846692. ما به شما کمک می کنیم تا بهترین راه حل را برای کسب و کار خود پیدا کنید و یک وب سایت با سئوی قوی داشته باشید.

نظرات کاربران