Skip to content

DangelZM/simplicitjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimplicitJS

Simple and explicit structure for app based on express.js

Установка

После клонирования репозитория вам понадобиться установить зависимости:

npm install & bower install

Нужно также создать в корне проекта файл .env, примерную структуру которого вы можите увидеть в файле .env.sample Из основных настроек которые должны быть объязательно определены в файле:

  • NODE_ENV - параметр окружения
  • NODE_PORT - порт на котором будет запущено приложение

Остальные настройки могут вам понадобиться в зависимости от используемых вами модулей

Модули

Simplicit построен по принципу модульного приложения, модулем может быть отдельная часть вашего проекта которая отличаеться своим повидением или лайоутом. После клонирования репозитория в директории modules вы сможите увидеть три модуля для примера:

  • front - модуль который имеет лайоут с возможностью указать тему отображения, свой набор контролеров и будет отображаться как основной контент вашего проекта;
  • api - модуль не имеющий лайоута для отображения, со своим набором контролеров;
  • admin - модуль который построен по принципу Single Page App (SPA), может взаимодействовать с модулем api.

Любые части могут вами быть заменены на более подходящие в вашем случае.

Конфигурация используемых вами модулей определяется в одном из файлов находящихся в директории /config/environments/

И может иметь такой вид:

"appModules": { 
  "admin":  "/admin", 
  "api":    "/api", 
  "front":  "/" 
}

Таким образом вы можете настроить набор модулей которые будут отображатся в выбраном окружении

Создание модуля

Для создания модуля вам нужно создать новую директорию в папке modules И в ней создать файл index.js Этот файл будет стартовой точкой вашего модуля. Вы свободны в организации структуры модуля но для работы в составе Simplicit от должен отдавать результат работы express()

Пример index.js модуля:

var express = require('express');
var submodule = express();

submodule.get('/', function(req, res){
    res.send({
        title: "Some text"
    })
});

module.exports = submodule;

Вы так же можете создать модуль с помощу подготовленого класса Module

Пример index.js модуля:

var path = require('path');
var config = require('nconf');
var ModuleClass = require(path.join(config.get('CORE_DIR'), 'Module'));

var Module = new ModuleClass(__dirname);

Module.init();
module.exports = Module.getInstance();

В данном случае в директории вашего модуля должен быть файл конфигурации модуля config.json и дериктория controllers (за исключением модуля с типом "spa")

В файле конфигурации модуля могут быть указаны такие параметры:

  • type - тип модуля, пока мы учитываем такие варианты: standard, spa, api;
  • views - параметр указывающин нужно ли использовать для модуля виды отображения (возможное значение true|false);
  • controllers - объект по типу ключь значение описывает путь и файл контролера котрый будет отвечать на запрос к данному пути;
  • theme - в случае использования views будет указывать на директорию с темой;

About

Simple and explicit structure for app based on express.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published