در دنیای امروز، توسعه وب اپلیکیشن های کارآمد و مقیاس پذیر امری ضروری است. فریم ورک AdonisJS با معماری MVC و ویژگی های مدرن خود، ابزاری قدرتمند برای توسعه دهندگان Node.js فراهم کرده است. در این آموزش جامع، نحوه استفاده از AdonisJS به همراه پایگاه داده MySQL را برای ساخت یک وب اپلیکیشن کامل بررسی خواهیم کرد.
قبل از شروع این آموزش، مطمئن شوید که موارد زیر را نصب و پیکربندی کرده اید:
برای شروع، یک پروژه جدید AdonisJS ایجاد می کنیم:
npm init adonisjs@latest my-app
cd my-app
node ace configure @adonisjs/lucid
در مرحله بعد، اطلاعات اتصال به پایگاه داده MySQL را در فایل `.env` پیکربندی کنید. اطلاعاتی مانند نام پایگاه داده، نام کاربری و رمز عبور را وارد نمایید.
مدل ها نمایانگر جداول پایگاه داده هستند و مایگریشن ها برای ایجاد و تغییر ساختار جداول استفاده می شوند. برای مثال، یک مدل `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
کنترلرها منطق برنامه را مدیریت می کنند و روت ها درخواست های 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')
نماها برای نمایش داده ها به کاربر استفاده می شوند. 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 })
}
}
اعتبارسنجی داده های ورودی برای اطمینان از صحت و امنیت داده ها ضروری است. 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
}
}
AdonisJS با پکیج `@adonisjs/auth` امکانات کاملی را برای احراز هویت کاربران فراهم می کند. با استفاده از این پکیج، می توان به راحتی سیستم ورود و ثبت نام کاربران را پیاده سازی کرد.
برای نصب این پکیج:
node ace configure @adonisjs/auth
AdonisJS یک فریم ورک Node.js با معماری MVC است که برای توسعه وب اپلیکیشن های کارآمد و مقیاس پذیر طراحی شده است.
AdonisJS دارای ویژگی هایی مانند ORM قدرتمند، سیستم روتینگ انعطاف پذیر، ابزارهای اعتبارسنجی، و احراز هویت است که توسعه وب اپلیکیشن ها را سریع تر و آسان تر می کند.
اطلاعات اتصال به پایگاه داده در فایل `.env` پیکربندی می شود.
برای اجرای مایگریشن ها از دستور `node ace migration:run` استفاده کنید.
این تنها یک مقدمه بر توسعه وب اپلیکیشن با AdonisJS و MySQL بود. برای یادگیری عمیق تر و حرفه ای تر، نیاز به تمرین و مطالعه بیشتر دارید.
اگر نیاز به مشاوره در زمینه سئو و توسعه وب اپلیکیشن دارید، با ما تماس بگیرید.
09190994063 - 09376846692