Особенности использования SailsJS для начинающих (Часть 1)

в 15:20, , рубрики: node.js, sails.js, метки: ,

Особенности использования SailsJS для начинающих (Часть 1)

Синопсис

Эта статья содержит полезные для новичков методы и способы разработки на SailsJS, которые могут быть неизвестны или непонятны тем кто только ступил на путь разработки в этом удобном и многофункциональном фреймворке. Это может быть все — начиная от обычных команд, генераторов или сервисов, и заканчивая встроенными методами запросов. Здесь собраны полезные мелочи платформы которые смогут защитить вас от написания костылей или велосипедов. Заинтересовало?

Особенности использования SailsJS для начинающих (Часть 1)

Использование CoffeeScript в backend

Возможно не все знают но в Sails реализована не только автоматическая компиляция CoffeeScript не только в фронтенд части, но и при написании других компонентов системы. Для использования этой возможности необходимо установить coffee-script в локальном окружении проекта:

npm install coffee-script --save

Далее необходимо немного поправить файл app,js в корне проекта. В начало файла (перед объявлением переменной sails) добавьте следующую строку.

require('coffee-script');

Это были маленькие манипуляции чтобы исключить встроенную проблему, которая некоторых может ввести в ступор.
А теперь для генерации необходимого нам API на Coffee, в Sails существует аргумент --coffee

Генерация API целиком (модель + контроллер)

sails generate api post --coffee

где post имя нашего api.

Генерация модели

sails generate model post --coffee
Генерация контроллера

sails generate controller post --coffee

Вот с помощью таких нехитрых манипуляций мы включили поддержку Coffee в SailsJS, работает в версии 0.10х. В офф. документации не описано.

Особенности использования SailsJS для начинающих (Часть 1)

Встроенная система базовых ответов

Думаю многие из нас сталкивались с ситуацией когда нужно было создать или использовать страницу с ответом множественного использования, начиная с простого ответа ошибки 404, и заканчивая формирования чего-либо из входных данных без использования контроллеров. Для этих случаев в Sails предусмотрена система ответов которая располагается в api/responses. Из по-умолчанию встроенных ответов можно считать:

  • res.serverError() — ошибка 500
  • res.notFound() — ошибка 404
  • res.forbidden() — ошибка 403
  • res.ok() — ответ 200

Это не просто передающие статус обработчики вроде res.send(404) а полноценно формируемое ответ представление — страницы ошибки, которые вы например видите когда открываете не заданную в sails страницу или ошибочную обработку, и получаете визуальный ответ ошибки 404 или 500 с текстом ошибки. Пример использования.

res.notFound('Ошибка'); // возбуждает ошибку 404 и выводит текст ошибки (первый аргумент)
res.notFound('Ошибка', '/'); // передает текст ошибки, и страницу куда перенаправить с случае возникновения

В базовом случае, при простой передаче одного аргумента с текстом ошибки, выглядеть будет примерно так:
Особенности использования SailsJS для начинающих (Часть 1)
Это простые и удобные утилиты, которые могут не замечать некоторые новички. Также если вы проведете небольшой аудит кода этих ответов (который весьма прост и хорошо закомментирован) вы сможете без труда самостоятельно составлять свои ответы. Подробнее о ответах в Sails можете почитать тут.

Особенности использования SailsJS для начинающих (Часть 1)

Сервисы

Когда мы хотим чтобы происходила обработка чего-либо не зависимо от отдельно взятого контроллера, нечто что мы хотим использовать много раз, или сделать удобную для нас обертку для какой-либо библиотеки или модуля, мы можем использовать для этого сервисы SailsJS. Сервисы это удобные в использовании модули с которыми можно работать локально в вашем приложении. Все сервисы располагаются в api/services, для использования сервисов много умений не требуется. Сейчас разложу по пальцам. Предположим мы хотим создать некий сервис Custom с выполняемым им методом N, а потом вызвать его из контроллера. Для этого создайте файл CustomService.js в api/services, теперь в этом файле мы должны определить метод N — для этого достаточно такого простого содержания.

exports.N = function(opt1, opt2) { // Объявляем метод N - функция
.....
}

Вызвать метод N в любом нашем контроллере можно так

CustomService.N();

Как видите все предельно просто и понятно, также используя серсисы можно успешно и понятно создавать API для генераторов.

Особенности использования SailsJS для начинающих (Часть 1)

Конфигурации

Некоторые из начинающих совершают не летальную но очень необдуманную ошибку — они хранят значения некоторых кастомно изменяемых переменных или объектов для конфигурирования своих приложений в самих контроллерах (или вообще хранят их как атрибут defaultsTo в моделях). Вместо этого разумнее хранить все свои конфигурации в положенном им фреймворком месте — config/. Сейчас мы рассмотрим как совсем быстро создать и использовать конфигурации. Предположим мы хотим создать конфигурацию Custom с 2 хранимыми параметрами — N и S, а потом использовать их в своем контроллере. Для этого в config/ создайте файл custom.js, c таким содержанием.

module.exports.custom = {
    N: '.....',
    S: 'custom'
}

Для доступа к конфигурации из любой части вашего приложения — достаточно использовать простейшие средства.

var N = sails,config.custom.N;
var S = sails.config.custom.S;

В заключение

На этом завершим первую часть небольшого дополнения вводного курса для новичков в SailsJS. В следующей статье будет рассмотрены такие полезные вопросы как «Реализация выгрузки файлов на сервер с помощью стандартных средств Sails» и многие другие возможности которые появились в Sails начиная с версии 0.10.

Автор: friktor

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js