Системные параметры приложения
Описание настроек используемых в файле конфигурации settings.config и в файлах настроки пакетов. Который отвечает за основные параметры приложения.
aliases - Объект с псевдонимами путей различного характера начиная от страниц обработки ошибок до псевдонимов путей шаблонов. Используется для возможности переопределения базовых шаблонов и для сокращенного набора. При задании псевдонима в программе вначале ставится знак @: fcf.getPath("@controls:button").
При переопределении из другого модуля параметр дополняется
Тип: object
Пример задания поля aliases:
aliases: {
"page:page404" : "fcf:templates/page404.tmpl",
"page:system-error-page" : "fcf:templates/system-error-page.tmpl",
"page:system-page" : "fcf:templates/system-page.tmpl",
},
avalibleMirrors - Определяет разрешение работоспособности приложения на клиенте, если клиент открывает его на неродном URL сервера.
Тип: bool|array
По умолчанию: true
Если равен true - приложение будет работать в не зависимости от URL.
Если равен false - приложение будет работать только на сервере указанном в параметре site
Если параметр представлен массивом доменных имен, то приложение будет работать только на указанных доменах и сайте указанном в параметре site
cacheDirectory - Путь к директории кэша
Тип: string
По умолчанию: ":cache"
directorySystemProjections - Путь к системным проекциям проекта
Тип: string
По умолчанию: ":projections/fcfsystem"
filters - Объект связывающий тип данных FSQL с фильтром обработчиком поля. Ключом выступает тип данных, а значением путь к модуль обработчика типа данных (фильтр)
При переопределении из другого модуля параметр дополняется
Тип: object
Пример:
filters: {
"enum": "fcf:NFSQL/NFilter/Enum.js",
"int": "fcf:NFSQL/NFilter/Int.js",
"bigint": "fcf:NFSQL/NFilter/BigInt.js",
"float": "fcf:NFSQL/NFilter/Float.js",
"boolean": "fcf:NFSQL/NFilter/Boolean.js",
"string": "fcf:NFSQL/NFilter/String.js",
"text": "fcf:NFSQL/NFilter/Text.js",
"password": "fcf:NFSQL/NFilter/Password.js",
"datetime": "fcf:NFSQL/NFilter/Datetime.js",
"file": "fcf:NFSQL/NFilter/File.js",
},
friendlySite - Дружественное имя сайта
Тип: string
По умолчанию: "FCF"
html - Конфигурационный объект HTML страницы. Содержит объект поле "include", элементы которого (значения) включаются в каждую страницу проекта.
Пример:
{
html: {
include: {
"jquery.js": "path_to_js",
"jquery.css": "path_to_css",
}
}
}
Тип: object
lifetimeNotInitializedUser - Время жизни учетной записи без подтверждения регистрации. Если параметр равен нулю ограничение не применяется.
Тип: int/day
По умолчанию: 7
logFile - Префикс пути файла лога. Для формирования реального пути файла еще добавляется дата и расширение ".log"
Тип: string
По умолчанию: "log/node-log-"
loginUncreatedUser - Если равен true аутентификация пользователя без подтверждения по e-mail разрешается
Тип: bool
По умолчанию: false
logLifeTime - Время жизни файла лога
Тип: int
По умолчанию: 30
mailAddress - Адрес почтового ящика отправленных сообщений
Тип: string
По умолчанию: "mail@gmail.com"
mailPassword - Пароль пользователя почтового клиента
Тип: string
По умолчанию: "password"
mailService - Адрес почтового сервера для отправки почты
Тип: string
По умолчанию: "smtp.gmail.com"
mailUser - Имя пользователя почтового клиента
Тип: string
По умолчанию: "user"
maxReqursionRender - [Доступно с версии 1.1.44] Определяет ограничение количества вложенных шаблонов при рендеринге.
Тип: integer
По умолчанию: 100
maxSizeReceived - Максимальный размер тела запроса которое задает параметр limit в BodyParser
Тип: string
По умолчанию: 100mb
maxUrlCountParametersReceived - Максимальный размер URL параметров которое задает параметр parameterLimit в BodyParser
Тип: int
По умолчанию: 1000
nodeDependencies - Перечень зависимостей NODEJS модулей
Тип: object
Объект имеет следующий формат. В качестве ключа выступает имя пакета. Значение является пустым объектом или объектом со свойством version.
Значение свойства version может начинаться с ограничения (иметь префикс) ">=", ">", "<=", "<" или иметь конкретное значение версии. Если поле не задано NPM выберет версию на свое усмотрение.
Пример:
...
nodeDependencies:{
"match-all": {},
"express": { version: "4.16.2"},
"mysql2": { version: ">=2.2.3" },
}
...
numberInvalidLoginAttemptsBeforeWaiting - Количество неудачных попыток ввода пароль для пользователя, после чего вход для пользователя блокируется на время указанное в параметре waitingLogin
Тип: int
По умолчанию: 3
projectionDirectories - Массив с путями директорий проекций подгружаемых в проект. При переопределении данного параметра из приложения или другого модуля содержимое массива дополняется.
Тип: [string]
По умолчанию: ["fcf:projections"]
routes - Массив связывающий элементы путей с контроллерами.
Тип: array
routes - массив объектов описывающих URL маршруты приложения. Элемент массива конфигурируется двумя обязательными полями "uri", "controller" и необязательным полем "childs", остальные свойства передаются в контроллер, как параметры.
uri - URI путь приложения. Может иметь три формата:
Полный - полное соответствие указанному пути.
Параметризованный - Отдельные разделы пути заменяются аргументом ${ARG_NAME}, который при обработке помещается в аргументы роутера
Пример:
"/pages/${name}"
Все вложенные - для этого используется символ *. Для объявления "/page/*" будут соответствовать все пути начинающиеся с "/page/"
controller - Путь к контроллеру обрабатывающий заданный URL
childs - Массив объектов описателей вложенных путей.
Пример на два адреса "/main" и "/main/news":
{
uri: "/main",
controller: "fcf:NServer/NControllers/Page.js",
source: "templates/main.tmpl",
childs: [
{
uri: "news",
controller: "fcf:NServer/NControllers/Page.js",
source: "templates/news.tmpl",
}
],
},
sessionLifetime - Время жизни сессии клиента. Если параметр равен нулю ограничение не применяется.
Тип: int/day
По умолчанию: 30
site - Наименование сайта
Тип: string
По умолчанию: "http://localhost"
systemVariables - Объект с описанием системных переменных. В качестве ключа выступает путь системной переменной [PACKAGE]:[VARIABLE_NMAE]. А в качестве значения выступает объект с описанием .
Тип: object
Пример объявления системной переменной в файле fcf:package.config:
{
...
systemVariables: {
"fcf:packageVersions": { value: {fcf: "0.0.0"}, description: "Package versions", }
},
...
}
userProjectionName - Проекция в которой хранится информация о пользователях
Тип: string
По умолчанию: "___fcf___users"
view - Объект с правилами выбора шаблона отображения для типа данный FSQL.
При переопределении из другого модуля параметр дополняется
Тип: object
Объект имеет следующую структуру:
{
MODE: {
FSQL_TYPE1: TEMPLATE1,
FSQL_TYPE2: TEMPLATE2
}
}
MODE - Формат многоуровневого задания режима вывода. Режимы первого уровня: add, edit, read. Режимы второго уровня: add.full, edit.short, read.full. Для указания соответствия всех вложенных режимов используется символ *. Так для записи "add.*" будут соответствовать комбинации "add" и "add.full"
FSQL_TYPE1 - Тип FSQL
TEMPLATE1 - Шаблон или alias для отображения данных в соответствующем режиме
Пример:
views: {
"read.*": {
"boolean": "@controls:boolean",
"datetime": "@controls:datetime",
"enum": "@controls:enum-item",
"file": "@controls:file",
"float": "@controls:text",
"int": "@controls:text",
"link": "@controls:link",
"string": "@controls:text",
},
"read.short": {
},
"read.full": {
"externalRef": "@controls:externalRef",
},
"edit.*": {
"boolean": "@controls:checkbox",
"datetime": "@controls:datetime-edit",
"enum": "@controls:select",
"file": "@controls:file-edit",
"float": "@controls:float-edit",
"int": "@controls:int-edit",
"password": "@controls:password",
"string": "@controls:text-edit",
"text": "@controls:textarea",
},
"edit.full": {
},
"add.*": {
"boolean": "@controls:checkbox",
"datetime": "@controls:datetime-edit",
"enum": "@controls:select",
"file": "@controls:file-edit",
"float": "@controls:float-edit",
"int": "@controls:int-edit",
"password": "@controls:password",
"string": "@controls:text-edit",
"text": "@controls:textarea",
},
"add.full": {
},
},
waitingLogin - Время на которое блокируется вход для пользователя после неудачных попыток входа
Тип: int/seconds
По умолчанию: 60