Особенности использования SailsJS для начинающих (Часть 1)
СинопсисЭта статья содержит полезные для новичков методы и способы разработки на SailsJS, которые могут быть неизвестны или непонятны тем кто только ступил на путь разработки в этом удобном и многофункциональном фреймворке. Это может быть все — начиная от обычных команд, генераторов или сервисов, и заканчивая встроенными методами запросов. Здесь собраны полезные мелочи платформы которые смогут защитить вас от написания костылей или велосипедов. Заинтересовало?
Использование 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х. В офф. документации не описано.
Встроенная система базовых ответов Думаю многие из нас сталкивались с ситуацией когда нужно было создать или использовать страницу с ответом множественного использования, начиная с простого ответа ошибки 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 ('Ошибка', '/'); // передает текст ошибки, и страницу куда перенаправить с случае возникновения В базовом случае, при простой передаче одного аргумента с текстом ошибки, выглядеть будет примерно так: Это простые и удобные утилиты, которые могут не замечать некоторые новички. Также если вы проведете небольшой аудит кода этих ответов (который весьма прост и хорошо закомментирован) вы сможете без труда самостоятельно составлять свои ответы. Подробнее о ответах в Sails можете почитать тут.
Сервисы Когда мы хотим чтобы происходила обработка чего-либо не зависимо от отдельно взятого контроллера, нечто что мы хотим использовать много раз, или сделать удобную для нас обертку для какой-либо библиотеки или модуля, мы можем использовать для этого сервисы SailsJS. Сервисы это удобные в использовании модули с которыми можно работать локально в вашем приложении. Все сервисы располагаются в api/services, для использования сервисов много умений не требуется. Сейчас разложу по пальцам. Предположим мы хотим создать некий сервис Custom с выполняемым им методом N, а потом вызвать его из контроллера. Для этого создайте файл CustomService.js в api/services, теперь в этом файле мы должны определить метод N — для этого достаточно такого простого содержания. exports.N = function (opt1, opt2) { // Объявляем метод N — функция … } Вызвать метод N в любом нашем контроллере можно так CustomService.N (); Как видите все предельно просто и понятно, также используя серсисы можно успешно и понятно создавать API для генераторов.
Конфигурации Некоторые из начинающих совершают не летальную, но очень необдуманную ошибку — они хранят значения некоторых кастомно изменяемых переменных или объектов для конфигурирования своих приложений в самих контроллерах (или вообще хранят их как атрибут 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.