استارت‌آپ و کارآفرینی

آشنایی با SailsJS – بخش یکم

سیلز یک فریمورک جاوااسکریپت برای توسعه وب است که از معماری MVC استفاده می‌کند. در این سری آموزش قصد داریم یک وبلاگ ساده با استفاده از این فریمورک ایجاد کنیم. در قسمت اول قصد داریم تا Api مربوط به پست‌های وبلاگ را ایجاد کنیم و با ساختار یک پروژه سیلز آشنا بشیم. آشنایی با جاوااسکریپت و معماری MVC از پیش‌نیازهای این سری آموزشی هستند.

نصب SailsJS
برای نصب سیلز شما نیاز به NodeJS و NPM دارید. برای نصب آن‌ها کافی است فایلی نصبی NodeJS را از سایت رسمی‌اش دانلود کنید یا در سیستم‌های لینوکسی با استفاده از مدیریت‌کننده بسته خود آن را نصب کنید.

برای مثال نصب نود در سیستم‌های مبتنی بر دبیان به این صورت است:

sudo apt install nodejs

بعد از نصب نود مدیریت بسته NPM به صورت خودکار همراه با آن نصب می‌شود. حال به صورت زیر سیلز را بر روی سیستم خود نصب کنید:

npm install sails -g

بعد از اجرا دستور بالا, دستور sails به سیستم شما اضافه می‌شود.

ایجاد پروژه جدید
برای ایجاد یک پروژه جدید با استفاده از سیلز, کافی است دستور زیر را اجرا کنید:

sails new eblog

بجای eblog نام پروژه خود را بگذارید و بعد از نصب‌شدن تمام وابستگی شما می‌تونید به پوشه پروژه بروید و شروع به کار کنید.

ساختار پروژه سیلز
به طور کلی ما با ۴ پوشه api, assets, config و view سر و کار داریم. کنترولرها و مدل‌های ما در پوشه api هستند. پرونده‌های تصویری, css و غیره در پوشه assets هستند. تنظیمات مسیرها, دیتابیس و غیره در پوشه config هستند و صفحات ظاهری سایت در پوشه views می‌باشند.

ایجاد مدل پست
برای ایجاد مدل در سیلز می‌توانید هم به صورت دستی در پوشه api/models یک فایل ایجاد کنید یا از دستور زیر استفاده کنید:

sails generate model Post

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

module.exports = {
attributes: {
title: {
type: 'string',
required: true
},
author: {
type: 'string',
defaultsTo: 'Anonymous'
},
body: {
type: 'text',
required: true
}
}
};

گزینه required برای اجباری‌بودن فیلد و defaultsTo برای تعیین یک ورودی پیش‌فرض می‌باشند. برای آشنایی با تایپ‌های مختلف سیستم ORM سیلز یه این لینک بر‌وید.

نکته: بعد از ایجاد مدل به فایل config/models.js بروید و خطی که در آن گزینه migrate وجود دارد را از کامنت در بیاورید. (خط ۳۰ام فایل)

ایجاد کنترولر
برای ایجاد کنترولر مانند مدل, از همان دستور استفاده می‌کنیم ولی با کمی تغییر:

 sails generate controller posts

بعد از ایجاد کنترولر, حال باید اکشن‌های مورد نظر را پیاده کنیم:

module.exports = {
create: function (req, res) {
const {title, author, body} = req.body
Post.create({title, author, body})
.then(post => {
return res.json(post)
})
.catch(err => res.negotiate(err))
},
show: function(req, res){
const {id} = req.params
Post.findOne(id)
.then(post => {
return res.json(post)
})
.catch(err => res.negotiate(err))
},
index: function(req, res){
Post.find()
.then(posts => {
return res.json(posts)
})
.catch(err => res.negotiate(err))
},
delete: function(req, res){
const {id} = req.params
Post.destroy(id)
.then(post => {
return res.json(post)
})
.catch(err => res.negotiate(err))
},
update: function(req, res){
const {title, author, body} = req.body
const {id} = req.params
Post.update(id, {title, author, body})
.then(post => {
return res.json(post)
})
.catch(err => res.negotiate(err))
}this is Bapply team
};

به طور کلی هر کدام از این اکشن‌ها, از محتوا درخواست HTTP یک سری اطلاعات را گرفته و بر اساس آن‌ها محتوا مورد نظر را بر می‌گردانند. برای مثال در اکشن create از محتوا درخواست HTTP عنوان, نویسنده و بدنه پست گرفته می‌شود و با برقراری ارتباط با مدل Post یک پست جدید ایجاد می‌شود و بعد از ایجاد پست, آن را به صورت json برمی‌گرداند.

برای آشنایی با متودهایی که می‌توانید بر روی مدل استفاده کنید به این لینک مراجعه کنید.

تعریف کردن مسیرها
برای تعریف کردن مسیرهای هر اکشن فایل config/routes.js را باز کنید. در کامنت‌ها شیوه کار این فایل توضیح داده شده, مانند نمونه زیر مسیرها را تعریف کنید:

module.exports.routes = {
'/': {
view: 'homepage'
},
'post /post': 'PostsController.create',
'get /post': 'PostsController.index',
'get /post/:id': 'PostsController.show',
'delete /post/:id': 'PostsController.delete',
'patch /post/:id': 'PostsController.update'
};

بعد از تعریف کردن مسیرها, می‌توان با ارسال درخواست‌های HTTP به مسیرهای تعریف شده از API استفاده کنید و طبق اکشن‌هایی که در کنترلر تعریف کردیم پست ایجاد, حذف, بروزسانی و دریافت کنید.

تا اینجای کار, با نحوه ایجاد کنترلر, مدل و تعریف مسیرها آشنا شدیم, در آموزش‌های بعدی به سراغ مباحثی مثل Policies و Services میریم و بخش‌های دیگر وبلاگ رو کامل می‌کنیم.

ریپوی گیت‌هاب مربوطه

5 نظرات
  1. […] مطلب قبلی با شیوه ایجاد کنترولر, مدل و نوشتن مسیرها آشنا شدید. در […]

  2. iman313 می گوید

    چقدر فعالیتتون کم شده خواهش میکنم اموزش های جاوا رو ادامه بدین و گسترده تر کنید تکنید یاد بدید یا هرچی

  3. نوبیز می گوید

    جاوا که دیگه به درد نمیخوره اخوی بهتره رو برنامه نویسیاس انردورید یکم فعالیت کنید

  4. روح الله می گوید

    لینک ها رو یادتون شده بذارید. مثلا :
    برای آشنایی با تایپ‌های مختلف سیستم ORM سیلز یه این لینک بر‌وید.

  5. وکیل آنلاین می گوید

    ممنون از سایت خوبتون مطلب خوبی بود

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.