آموزش توسعه وب‌اپلیکیشن با AdonisJS و MySQL

تاریخ: 1404/7/17 ساعت: 5:9 بازدید: 30

آموزش جامع توسعه وب اپلیکیشن با AdonisJS و MySQL: از صفر تا صد

در دنیای امروز، توسعه وب اپلیکیشن های کارآمد و مقیاس پذیر امری ضروری است. فریم ورک AdonisJS با معماری MVC و ویژگی های مدرن خود، ابزاری قدرتمند برای توسعه دهندگان Node.js فراهم کرده است. در این آموزش جامع، نحوه استفاده از AdonisJS به همراه پایگاه داده MySQL را برای ساخت یک وب اپلیکیشن کامل بررسی خواهیم کرد.

پیش نیازها

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

  • Node.js (نسخه 16 یا بالاتر)
  • NPM یا Yarn
  • MySQL Server
  • یک ویرایشگر کد (مانند VS Code)

مراحل نصب و پیکربندی AdonisJS

برای شروع، یک پروژه جدید AdonisJS ایجاد می کنیم:

        
        npm init adonisjs@latest my-app
        cd my-app
        node ace configure @adonisjs/lucid
        
    

در مرحله بعد، اطلاعات اتصال به پایگاه داده MySQL را در فایل `.env` پیکربندی کنید. اطلاعاتی مانند نام پایگاه داده، نام کاربری و رمز عبور را وارد نمایید.

مدل ها (Models) و مایگریشن ها (Migrations)

مدل ها نمایانگر جداول پایگاه داده هستند و مایگریشن ها برای ایجاد و تغییر ساختار جداول استفاده می شوند. برای مثال، یک مدل `User` با فیلدهای `id`, `username`, `email` و `password` ایجاد می کنیم:

        
        node ace make:model User -m
        
    

فایل مایگریشن ایجاد شده را ویرایش کنید تا ساختار جدول `users` را تعریف کنید:

        
        // database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.ts
        import BaseSchema from '@ioc:Adonis/Lucid/Schema'

        export default class extends BaseSchema {
          protected tableName = 'users'

          public async up () {
            this.schema.createTable(this.tableName, (table) => {
              table.increments('id').primary()
              table.string('username').notNullable().unique()
              table.string('email').notNullable().unique()
              table.string('password').notNullable()
              table.timestamp('created_at', { useTz: true })
              table.timestamp('updated_at', { useTz: true })
            })
          }

          public async down () {
            this.schema.dropTable(this.tableName)
          }
        }
        
    

سپس مایگریشن ها را اجرا کنید تا جدول `users` در پایگاه داده ایجاد شود:

        
        node ace migration:run
        
    

کنترلرها (Controllers) و روت ها (Routes)

کنترلرها منطق برنامه را مدیریت می کنند و روت ها درخواست های HTTP را به کنترلرهای مربوطه هدایت می کنند. یک کنترلر برای مدیریت عملیات مربوط به کاربران ایجاد می کنیم:

        
        node ace make:controller User
        
    

فایل `app/Controllers/Http/UsersController.ts` را ویرایش کنید و متدهایی برای ایجاد، خواندن، به روزرسانی و حذف کاربران (CRUD) اضافه کنید.

سپس روت ها را در فایل `routes/web.ts` تعریف کنید تا درخواست ها به متدهای کنترلر هدایت شوند:

        
        // routes/web.ts
        import Route from '@ioc:Adonis/Core/Route'

        Route.get('/users', 'UsersController.index')
        Route.post('/users', 'UsersController.store')
        Route.get('/users/:id', 'UsersController.show')
        Route.put('/users/:id', 'UsersController.update')
        Route.delete('/users/:id', 'UsersController.destroy')
        
    

نماها (Views)

نماها برای نمایش داده ها به کاربر استفاده می شوند. AdonisJS از موتور قالب بندی Edge برای ایجاد نماها استفاده می کند. یک نما برای نمایش لیست کاربران ایجاد می کنیم:

        
        // resources/views/users/index.edge
        

Users

    @each(user in users)
  • {{ user.username }}
  • @else
  • No users found.
  • @end

در کنترلر، داده ها را به نما ارسال کنید:

        
        // app/Controllers/Http/UsersController.ts
        import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
        import User from 'App/Models/User'

        export default class UsersController {
          public async index ({ view }: HttpContextContract) {
            const users = await User.all()
            return view.render('users/index', { users })
          }
        }
        
    

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

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

        
        // app/Controllers/Http/UsersController.ts
        import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
        import User from 'App/Models/User'
        import { schema, rules } from '@ioc:Adonis/Core/Validator'

        export default class UsersController {
          public async store ({ request }: HttpContextContract) {
            const validationSchema = schema.create({
              username: schema.string({}, [
                rules.required(),
                rules.unique({ table: 'users', column: 'username' })
              ]),
              email: schema.string({}, [
                rules.required(),
                rules.email(),
                rules.unique({ table: 'users', column: 'email' })
              ]),
              password: schema.string({}, [
                rules.required(),
                rules.minLength(8)
              ])
            })

            const validatedData = await request.validate({
              schema: validationSchema,
            })

            const user = await User.create(validatedData)

            return user
          }
        }
        
    

احراز هویت (Authentication)

AdonisJS با پکیج `@adonisjs/auth` امکانات کاملی را برای احراز هویت کاربران فراهم می کند. با استفاده از این پکیج، می توان به راحتی سیستم ورود و ثبت نام کاربران را پیاده سازی کرد.

برای نصب این پکیج:

        
        node ace configure @adonisjs/auth
        
    

سوالات متداول (FAQ)

AdonisJS چیست؟

AdonisJS یک فریم ورک Node.js با معماری MVC است که برای توسعه وب اپلیکیشن های کارآمد و مقیاس پذیر طراحی شده است.

چرا باید از AdonisJS استفاده کنم؟

AdonisJS دارای ویژگی هایی مانند ORM قدرتمند، سیستم روتینگ انعطاف پذیر، ابزارهای اعتبارسنجی، و احراز هویت است که توسعه وب اپلیکیشن ها را سریع تر و آسان تر می کند.

چگونه می توانم اطلاعات اتصال به پایگاه داده را پیکربندی کنم؟

اطلاعات اتصال به پایگاه داده در فایل `.env` پیکربندی می شود.

چگونه مایگریشن ها را اجرا کنم؟

برای اجرای مایگریشن ها از دستور `node ace migration:run` استفاده کنید.

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

اگر نیاز به مشاوره در زمینه سئو و توسعه وب اپلیکیشن دارید، با ما تماس بگیرید.

09190994063 - 09376846692

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