Изучаем sails.js. Часть 2. Структура проекта
Рубрика: sails.js -> JavaScript -> Программирование
Метки: framework | JavaScript | MVC | sails.js | инструменты | программирование
Просмотров: 6576
Продолжаем знакомиться с фреймворком sails.js. В прошлый раз я дал вводную часть и наглядно показал как легко создавать новые проекты с помощью встроенного в sails.js генератора проектов. Сегодня займемся изучением структуры созданного проекта, а затем напишем немного кода.
Структура проекта sails.js
api
Я неспроста начал именно с этой директории. Здесь вы будете работать над серверной частью бизнес-логики. Помните, я говорил, что sails.js применяет архитектурный шаблон MVC? Так вот, в директории api поселились сразу две буквы этой популярной аббревиатуры - “M” и “С”.
Директория api содержит ряд поддиректорий, каждая из которых отвечает за хранение определенных сущностей. Рассмотрим каждую из них.
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. Заходите, дальше будет еще интересней.