Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development
Code

Въведение в Sails.js

by
Difficulty:BeginnerLength:MediumLanguages:

Bulgarian (Български) translation by Stoyan Germanov (you can also view the original English article)

Sails е Javascript работна рамка, създадена да наподобява архитектурата на MVC  рамки като Ruby on Rails. Това прави процеса на изграждане на Node.js приложения по-лесно, особено за създаване APIs, приложения от една страница (single page apps) или функции променящи се в реално време, като чат.


Инсталация

За да инсталирате Sails, не се изискват усилия. Първоначално трябва  да имате Node.js инсталиран, а също и npm, който идва с него. След това трябва да изпишете следната команда в терминала (ако имате грешки заради вероятно стара версия на npm, не се притеснявайте инсталацията ще мине въпреки това бел. ред.):


Създаване на нов проект

За да създадете нов проект в  Sails, се използва следната команда:

Sails  ще генерира нова папка в текущата ви директория с име myNewProject и ще добави всички необходими файлове, за да имате всички основни приложение за работа с работната рамка. За да видите какво е генерирано, просто влезте в папката myNewProject и пуснете сървъра който идва с инсталацията на Sails, чрез следната команда в терминала:

Sail по подразбиране работи на порт 1337, така че ако посетите адрес http://localhost:1337 вие трябва да получите Sails index.html страницата по подразбиране.

index.html

Сега, нека да разгледаме какво Sails генерирани за нас. В нашата myNewProject папка следните файлове и папки са създадени (снимката по долу):

Folder structure

assets папка

Папката assets съдържа поддиректории за Javascript и CSS и т.н. файлове, които трябва да бъдат заредени по време на изпълнението. Това е най-доброто място за съхранение на спомагателни библиотеки, използвани от вашето приложение.

Папката public

Съдържа файлове, които са публично достояние, като снимки, които сайтът ви използва, favicon и др.

Папката config

Това е една от важните папки. Sails е проектиран да бъде гъвкав (flexible). Той приема някои стандартни конвенции, но също така позволява на разработчика да променя начина, по който Sails се конфигурира, за да може дадено приложение (app) да отговаря на нуждите на проекта. По-долу е списъкът на конфигурационните файлове в папката config:

  • аdapters.js - използва се за конфигуриране на базата данни и адаптерите
  • application.js - общи настройки за прилагане
  • assets.js - активни настройки за CSS и JS
  • bootstrap.JS - код, който ще се изпълни преди приложението (app) да стартира
  • locales - папка, съдържаща преводи за различни езици
  • policies.js - конфигуриране на правата за потребителя за управление
  • routes.js - маршрутизирането (руутинга) за системата
  • views.js - настройки за визуализацията

Sails.js документацията съдържа подробна информация за всяка от тези папки.

Папката views

Изгледите на приложението се съхраняват в тази папка. Разглеждайки съдържанието и, забелязваме, че изгледите са генерирани по подразбиране като EJS (embedded JavaScript). Също така папката views съдържа изгледи за обработка на грешки (404 и 500), а също и оформлението на файла (layout.ejs) и изгледите за контролера на началната страница, които са генерирани от Sails.

Папката api

Тази папка е съставен от грипа от под-папки:

  • Папката adapters съдържа адаптери, използвани от приложението
    за връзка към база данни.
  • Папката controllers съдържа контролери
  •  модели на приложението се съхраняват в папката models
  • в папката на policies са записани правила за прилагане потребителският достъп
  • api услугите и изпълнението им се съхраняват в services
    папката

Конфигуриране на приложението

Досега ние създавахме нашето приложение с генерирани настройки по подразбиране, сега е време да конфигурирате приложението за да отговарят на нашите нужди.

Общи настройки

Общите настройки се съхраняват в config/application.js файла. Конфигурируемите опции за приложението са:

  • име на приложение (appName)
  • портът, на което приложението ще слуша (port)
  • среда за разработка на приложението; може да бъде или в разработка, или прадакшън (environment)
  • нивото на  показване на информация, за контрол на размера на файла с регистрите (log)

Имайте предвид, че чрез задаване на опции на приложението за производство (environment), то прави пакети и минимизира CSS и JS, които може да са по-трудно за дебъгване.

Маршрутизиране (Routes)

Пътищата на приложение са дефинирани във файла config/routes.js. Както може би сте очаквали, този файл ще е този,  с който най-често ще работите когато добавяте нови контролери за приложението.

Маршрутите се изнасят както следва, в конфигурационния файл:

Изгледи (Views)

По отношение на изгледите, конфигурируемите опции за енджина за шаблони може да се използва, или да не се използва.


Моделите

Моделите представляват заявление за данни, които се съхранени в база данни. Модели са дефинирани с помощта на атрибути и асоциации (attributes and associations). Например дефинирането за модела Person може да изглежда така:

Комуникацията с основната база от данни се осъществява чрез адаптери. Адаптери са дефинирани  вapi/adapters и се конфигурират във файла adapters.js. В момента на писане на тази статия, Sails идва с три адаптера: memory, disk и mysql, но можете да напишете свой собствен адаптер (вижте документацията за подробности).

След като имате определен модел, можете да работите по него, чрез създаване на записи, намиране на записи,  актуализиране и унищожаване.


Контролери

Контролерите се намират в api/controllers. Контролер се създава с помощта на следната команда:

Тази команда ще генерира обект CommentController. Действията са определят в този обект. Действия също могат да бъдат генерирани, когато използвате командата generate controller:

Това ще създаде коментар (Comment)  контролер с действия за създаване, унищожаване, етикет и харесване (create, destroy, tag, like).

Действия се получават като параметри на заявката,както и върнатите обекти, които могат да бъдат използвани за получаване на параметри на URI (заявка обект) или изход (output) в изгледа (използващ обекта за отговор).

За да комуникират с модела, се използва обратни извиквания (callbacks) на използваните действия. Например при заявки към база данни с търсене find, следния шаблон се използва за манипулиране на модела:


Изгледи

Изгледите се използват за обработка на потребителския интерфейс на приложението. По подразбиране, изгледите се обработват с помощта на EJS, но всяка друга темплейтна библиотека може да се използва. Как да конфигурирате изглед беше обсъдено преди това в конфигурационната част.

Изгледите са дефинирани в /views директорията а шаблоните са дефинирани в папката /assests/templates.

Има основно четири типа изгледи:

  • server-side изглед
  • Изглед парче (partials)
  • изгледи на оформлението (layout)
  • client-side изглед

Server-Side изглед

Тяхната задача е да покажете данни, когато даден изглед е поискана от клиента. Обикновено  res.view метода кореспондира с клиента с подходящия изглед. Но ако няма контролер, или действие съществува при заявка, Sails ще предостави изгледа по следния начин: /views/:controller/:action.ejs.

Изглед на оформлението

Оформленията могат да бъдат намерени в /views/layout.ejs. Той се използва за зареждане на на части от приложението, като стилове или JavaScript библиотеки.

Да погледнем в примерният файл:

Редът assets.css() и  assets.js() зареждат CSS и JS активите на нашето приложение и assets.templateLibrary пък зарежда шаблоните на клиента.

Client-Side шаблони

Те са дефинирани в /assets/templates и са заредени, както видяхме по-горе.


Маршрути (Routes)

Ние обсъдихме как да конфигурирате маршрути в конфигурационната част.

Има няколко конвенции които Sails следва, когато маршрутите се обработват:

  • Ако не е зададен URL адрес в config/routes.js маршрута по подразбиране за URL адрес е /:controller/:action/:id с очевидните значения за контролер и действия и id като параметър на заявката, след базовия URL.
  • Ако :action не е указан, Sails ще се пренасочи към сподходящото действие. Между другото конвенциите на същия RESTful route се използват както в Backbone.
  • ако заявката controller/action не съществуват, Sails ще се държи така:
    • ако изгледа съществува, Sails ще направи този изглед
    • ако изгледът не съществува, но съществува модел, Sails ще се върне JSON формата на този модел
    • ако никой от по горните не съществува, платна ще отговори с 404

Заключение

Сега аз съм предал една обща представа, какво Sails може да направи, но редно, ако следите това писание да обърнете по задълбочено внимание на Sails.

Също така имайте предвид, че Sails е в процес на разработване и непрекъснато се променя. Така че не забравяйте да проверите документацията, за да видите какви се новостите.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.