Изучаем sails.js. Часть 2. Структура проекта
Персональный блог Игоря Антонова aka "spider_net"

Изучаем sails.js. Часть 2. Структура проекта


Рубрика: sails.js -> JavaScript -> Программирование
Метки: | | | | |
Просмотров: 7328
Изучаем sails.js. Часть 2. Структура проекта

Продолжаем знакомиться с фреймворком sails.js. В прошлый раз я дал вводную часть и наглядно показал как легко создавать новые проекты с помощью встроенного в sails.js генератора проектов. Сегодня займемся изучением структуры созданного проекта, а затем напишем немного кода.

Структура проекта sails.js

api

Я неспроста начал именно с этой директории. Здесь вы будете работать над серверной частью бизнес-логики. Помните, я говорил, что sails.js применяет архитектурный шаблон MVC? Так вот, в директории api поселились сразу две буквы этой популярной аббревиатуры - “M” и “С”.

Директория api содержит ряд поддиректорий, каждая из которых отвечает за хранение определенных сущностей. Рассмотрим каждую из них.

  • controllers. Название папки говорит само за себя. Здесь будут располагаться контроллеры. Контроллеры содержат код для взаимодействия с моделью и обслуживанию клиентских запросов.
  • models. В моделях мы будем описывать структуры для хранения данных нашего приложения.
  • Policies. Политики (надеюсь, я правильно перевел это слово) чаще всего используются для аутентификации клиентов и установки ограничений на доступ к определенным частям вашего приложения.
  • Responses. В этой директории можно определить логику ответов сервера (404 - страница не найдена, 500 - ошибка сервера и т.д.).
  • Services. Сервисы похожи на действия контроллеров. Их мы должны использовать для задач, не связанных с обработкой пользовательских запросов. Например, если требуются выполнить какой-то алгоритм, то выгодней его описать в виде сервиса, а не действия контроллера. Таким образом, вы сразу решаете проблему повторного использования и не захламляете папку с контроллерами.
  • config

    В этой папке содержатся различные конфигурационные файлы. Если требуется что-то настроить, то это “что-то” надо искать в первую очередь именно здесь. Я я не буду описывать каждый файл. С многими из них мы познакомимся во время грядущей практике.

    views

    В этой директории создаются представления. Из коробки в качестве шаблонизатора применяется EJS (embedded JavaScript). Следовательно, все файлы должны быть с расширением ejs.

    tasks

    По умолчанию sails.js использует Grunt для управления зависимостями. В папке task определяются задачи и настройки Grunt. Об этом поговорим отдельно, т.к. тема интересная.

    assets

    В этой папке принято хранить все клиентские библиотеки, css файлы, изображения и все другие штуки, которые должны быть доступны на клиенте.

    Немного кода и генераторов

    Теперь немного расширим созданное нами в прошлый раз приложение. Попробуем добавить новый контроллер, а заодно познакомимся с генератором контроллеров на практике. Сгенерируем контроллер “page”:

    sails generate controller page

    Команда автоматически создаст нам заготовку PageController.js. В ней мы будем описывать отдельные действия контроллеров. Откроем это файл в редакторе и в module.exports опишем парочку действий. Пока не будем заморачиваться представлениями, а просто возратим пользователю отдельные строки:

    module.exports = {
    	
        about: function(req, res) {
            res.send("Hello, from action 'about'");  
        },
        
        index: function(req, res) {
            res.send("This is index page");
        },
        
    };

    Итак, здесь описаны действия контроллера. А когда они будут выполняться? Когда пользователь будет обращаться к контроллеру: http://localhost:1337/page/about и http://localhost:1337/page/. Логика для подобных вещей стандартная - имя контроллера/метод действия/параметры.

    Попробуйте запустить пример командой “sails lift” и обратится к определенным действиям контроллера. Потом проведите небольшой эксперимент. Обратитесь к несуществующему действию.

    sails.js сгенерировал страницу 404

    В следующей заметке начнем рассматривать процесс создания реального приложения на sails.js. Заходите, дальше будет еще интересней.

    Оставьте комментарий!
    comments powered by HyperComments

    «« Сентябрь 2026 »»
    ПнВтСрЧтПтСбВс
     123456
    78910111213
    1415161718
    19
    20
    21222324252627
    282930