f2e-server
f2e-server — это HTTP-сервер на базе платформы nodejs, который предоставляет базовый шаблонизатор и набор популярных инструментов для фронтенда.
Описание
-
f2eserver.com — посетите сайт для получения подробной документации.
-
Присоединиться к группе f2e-server: перейдите по ссылке, чтобы присоединиться к группе.
Изменения
Изменения описаны в файле change.log.
Глобальная установка
Начиная с версии 1.8.3, f2e-server поддерживает глобальную установку:
- Установите: $ npm install f2e-server -g.
- Запустите: $ f2eserver start. После запуска службы в текущем каталоге будет автоматически создан файл f2e-conf.js. Вы можете изменить его при необходимости.
- Измените хосты: $ f2eserver hosts.
- Восстановите хосты: $ f2eserver reset.
Локальная установка
- Установите: $ npm install f2e-server.
- Перейдите в каталог сервера: $ cd node_modules/f2e-server.
- Запустите: $ npm start. После запуска службы в каталоге f2e-server будет автоматически создан файл conf.js. Вы можете изменить его при необходимости.
- Измените хосты: $ node hosts.
- Восстановите хосты: $ node hosts reset.
- Обратитесь к файлу конфигурации: nodeLib/config/conf.js.
Файловый сервер
f2e-server предоставляет базовые функции файлового сервера. С помощью файла конфигурации можно индексировать корневой каталог проекта.
- Укажите страницу приветствия относительно корня: welcome.
- Укажите 404-страницу относительно файла: notFound.
- Включите или отключите отображение каталогов файлов: fs_mod.
- Текущий номер порта сервера: port.
- Максимальное количество одновременных подключений, поддерживаемых сервером: maxConnections.
Шаблонизатор
По умолчанию f2e-server использует шаблонизатор underscore. См. nodeLib/common/handle.js#L18.
- По умолчанию шаблонизатор включён: runJs, а также связанные настройки: handle.
- Если отключить шаблонизатор, многие плагины перестанут работать.
- Шаблоны можно включать и вкладывать друг в друга.
- $include[включить фрагмент]
- $belong[фрагмент включён в родительский шаблон]
- $[placeholder] — используется для обозначения места включения фрагмента в родительском шаблоне.
- Переменные среды шаблона:
- request — объект запроса, содержащий следующие свойства:
- request.data — параметры GET-запроса, например, request.data.type — значение параметра type в GET-запросе.
- request.post — параметры POST-запроса. Доступ к ним осуществляется так же, как и к параметрам GET-запросов. Обратите внимание, что при GET-запросах request.post === null.
- request.util — модуль расширения mime, используемый f2e-сервером.
- request.conf — текущая конфигурация сервера.
- request.staticServer — URL конфигурации staticconf.
- response — собственный объект ответа.
- require — глобальный модуль nodejs.
- _ — исходный объект underscore.
Объединение ресурсов и сжатие
Сервер имеет встроенные модули uglify-js и cssmin. Они включаются, когда debug имеет значение false.
С помощью функции $include можно динамически объединять файлы ресурсов.
Поддержка промежуточного ПО
В f2e-server используется динамический режим анализа промежуточного программного обеспечения. Подробнее см. nodeLib/filter/middleware.js.
По умолчанию поддерживаются расширения less, coffee, jade и markdown. Их можно установить после npm install.
Для других расширений, которые не включены в список, но необходимы, рекомендуется попробовать изменить исходный код самостоятельно.
Вывод проекта
- Шаблон, объединение ресурсов, сжатие и промежуточное ПО могут быть выведены в выходной каталог проекта: output.
- При установке зависимостей для сжатия изображений, таких как png и jpg, сборка будет без потерь сжимать изображения при выводе.
- Промежуточное ПО может устанавливать атрибут middleware-type в заголовке запроса. Это позволяет изменять расширение файла ответа при выводе. Например, при использовании расширения в разработке рекомендуется обратиться к конфигурации агента: agent.
Функция пересылки хоста сервера
Используя разные хосты, можно направлять разные запросы на разные проекты на одном сервере.
Конфигурация всех ключей в conf.js считается набором локальных доменных имён (например, localhost, test.abc.com, test.xuan.news.cn).
Если несколько конфигураций используют один и тот же порт, необходимо использовать указанный домен для доступа (необходимо изменить файл hosts).
В установочном каталоге есть модули для быстрого изменения и восстановления файла hosts. Можно использовать node hosts для изменения или node hosts reset для восстановления изменённого файла hosts. По умолчанию используется системный путь Windows (для Linux/Unix измените его в соответствии с вашими потребностями). Если у вас нет необходимых разрешений, будет выдано исключение. Рекомендуется запускать от имени администратора!
Прокси-функция
f2e-сервер поддерживает проксирование удалённых запросов. Конфигурация находится в agent:
- host — хост удалённого прокси, по умолчанию текущий хост.
- port — номер порта удалённого прокси, по умолчанию 80.
- origin — формат origin для конфигурации, приоритет ниже, чем у host и port, поскольку требуется анализ в реальном времени, а производительность ниже, чем у хоста.
- path — способ преобразования пути, который может преобразовать локальный путь в указанный удалённый путь, по умолчанию совпадает с удалённым путём.
- cookie — cookie удалённого прокси (копирует cookie из заголовка запроса удалённого запроса).
- save — сохраняет ресурсы запроса в соответствующий каталог на локальном компьютере (загрузка ресурсов пакета и компиляция шаблонов промежуточного программного обеспечения).
Функции плагина
f2e-сервер предоставляет несколько полезных плагинов, поощряя разработчиков расширять их.
- agent (nodeLib/plugins/agent.js) — быстрый прокси для междоменных запросов, например /agent?http://news.cn.
- build (nodeLib/plugins/build.js) — см. раздел «Вывод проекта».
- config (nodeLib/plugins/config.js) — временно изменяет текущую конфигурацию службы [бета].
- favicon.ico (nodeLib/plugins/favicon.ico.js) — отдельно реализует favicon.ico.
- prettify (nodeLib/plugins/prettify.js) — реализует подсветку кода на стороне сервера, поддерживает удалённые запросы, такие как /prettify?http://news.cn, аналогично агенту.
- psd (nodeLib/plugins/psd.js) — считывает PSD-файлы в каталоге сервера и преобразует их в PNG в режиме реального времени для отображения в браузере. Также анализирует исходные данные ресурсов PSD и сохраняет их как PNG-изображения (бета).
- upload (nodeLib/plugins/upload.js) — обрабатывает почтовые запросы с использованием этого модуля (поддерживает загрузку файлов).
Комментарии ( 0 )