Latest version: undefined

Change log:
undefined
Full changelog...

Sailfish.js

Sailfish.js - фреймворк для
создания `component-based`
веб приложений,
основанный на express.js

client-side компоненты

Sailfish.js предоставляет инфраструктуру
для построения приложения с помощью
компонентов.

Оптимизация

Sailfish.js автоматически осуществляет
оптимизацию загрузки страниц приложения.

Маршрутизация

Маршрутизация в sailfish - это процесс разложения URL-пути на параметры для определения контроллера и действия контроллера, которое получит запрос на обработку.

Хранение логики приложения в контроллерах позволяет структурировать приложение, разделить его на функциональные области.

Инициализация механизма маршрутизации

Для инициализации механизма маршрутизации необходимо подключить middleware baseRouting

Функция baseRouting([controllersPath]) принимает один необязательный параметр controllersPath - расположение контроллеров приложения (по умолчанию - ./controllers)

Пример приложения с включенной маршрутизацией:

var
  express = require('express'),
  sailfish = require('sailfish'),
  app = sailfish(express);

app.use(sailfish.baseRouting());

app.listen(process.env.PORT || 10001);

Контроллер и действие

Контроллер - серверный js-модуль, который должен возвращать объект, ключи, в котором - имена действий, а значения - непосредственно действия контроллера.

Действие - функция обрабатывающая запрос. Аргументами в функцию приходят объекты req и res

Например контроллера index:

module.exports = {
   hello: function(req, res){
      res.send('Hello world!');
   }
};

Указанный в примере контроллер имеет всего лишь одно действие - hello. Это значит что при запросе http://%host%/hello пользователь увидит на экране текст Hello world!

Примеры

Корень сайта

http://%host%/

контроллер == index
действие   == index

Полноценный путь

http://%host%/news/edit/42

контроллер == news
действие   == edit
параметр1  == 42

если не найден контроллер news, то

контроллер == index
действие   == news
параметр1  == edit
параметр2  == 42

если не найден контроллер или в контроллере index нет действия news - ошибка 404

действие

http://%host%/news
контроллер == index
действие   == news