KeystoneJS – это система и структура управления контентом для создания серверных приложений, которые взаимодействуют с базой данных. Он основан на платформе Express для Node.js и использует MongoDB для хранения данных. Он представляет собой альтернативу CMS для веб-разработчиков, которые хотят создать управляемый данными веб-сайт, но не хотят переходить на платформу PHP или в большие системы, такие как WordPress.
Хотя WordPress может быть настроен не очень техническими пользователями, KeystoneJS предлагает контроль, необходимый профессиональным пользователям для разработки новых веб-сайтов, хотя по-прежнему значительно проще работать с KeystoneJS, чем создавать веб-сайт вручную с нуля. Он не только предлагает платформу для создания сайтов; Вы можете заменить почти все на нем и разработать более специализированные системы, такие как приложения и API.
Ключевая особенность
- Автоматически сгенерированный пользовательский интерфейс администратора . Когда вы создаете что-то с помощью KeystoneJS, определяемые вами модели данных также используются для автоматического создания панели администратора для управления вашими данными. Вам не нужно устанавливать модели базы данных напрямую; Вы описываете свои данные с помощью списков .

- Легкий и простой в настройке : тот факт, что вы получаете контроль над всем без необходимости знать огромную систему наизнанку, делает сайты легкими и удобными в настройке.
- Легко расширяемый : KeystoneJS можно считать библиотекой, и вы не ограничены использованием только тех функций, которые он предоставляет. Вы можете легко интегрировать любой пакет из одной из крупнейших библиотечных экосистем: JavaScript.
- Начните с нуля или используйте шаблон : если вы хотите начать создавать что-то вроде блога, вам не нужно тратить время на изучение логики системы; KeystoneJS предоставляет готовые шаблоны для использования или настройки. Если у вас есть конкретные требования, вы можете начать с нуля, используя предоставляемые им инструменты, но без необходимости писать все самостоятельно.
- Специально созданный для разработчиков : другие CMS, как правило, включают все в один пакет, так что нетехнические пользователи могут начать работу как можно быстрее. Тем не менее, KeystoneJS ориентирован на разработчиков, которые хотят создать CMS, но не хотят раздувать или ограничивать готовые системы.
- Совместимо со сторонними сервисами : KeystoneJS предлагает интеграцию с некоторыми полезными сторонними сервисами, такими как Amazon S3 , Cloudinary , Mandrill из коробки. Предположим, что вы хотите хранить определенные данные в Amazon S3, это так же просто, как добавить
{ type: Types.S3File }типа поля, когда вы определяете свои данные.
Случаи использования
- Веб-сайты для нетехнических пользователей . Если вы работаете веб-разработчиком для клиентов, вы можете обнаружить, что задача создания веб-сайта для не технического специалиста не так проста, поскольку вам также необходимо создать панель администрирования для добавления и обновления. данные. С KeystoneJS вам не нужно беспокоиться о выполнении двойной работы; панель администрирования создается автоматически.
- Динамические веб-сайты : KeystoneJS предоставляет полезную основу и инструменты для работы с динамическими данными на веб-сайтах, полезные, когда статические веб-сайты слишком малы, чтобы их рассматривать, но традиционные CMS, такие как WordPress, слишком тяжелы или сомнительны для вашего проекта.
- Производительность : нет ничего лучше, чем создавать что-то только для ваших нужд; Если вам нужен узкоспециализированный веб-сайт и производительность является ключевым фактором, вы можете использовать KeystoneJS для создания чего-то, соответствующего вашим потребностям и использующего преимущества производительности платформы Node.js, особенно для параллельных сервисов.
- Экосистема : JavaScript имеет одну из самых богатых экосистем сторонних пакетов. Также, если вам требуется (или вы просто предпочитаете) использовать JavaScript как на клиенте, так и на сервере, KeystoneJS – отличный инструмент.
- Tight Deadline : у вас есть проект со специализированными функциями, а срок очень близок? То, как KeystoneJS обрабатывает данные, и тот факт, что панель администрирования создается автоматически, означает, что вы можете тратить больше времени на создание реальной логики вашего сайта вместо обработки деталей реализации.
Начиная
Есть два способа начать проект KeystoneJS:
- С нуля импортируем пакет KeystoneJS .
- Использование Йоменского генератора .
Если вы опытный разработчик, хотите что-то совершенно новое или просто хотите узнать подробности, вы можете создать свой сайт, используя KeyStoneJS с нуля, что гарантирует, что вы всегда знаете, как все построено, и что у вас есть только код для функций, которые вы необходимость.
Тем не менее, если вы хотите создать свой первый веб-сайт для изучения вещей или если вам не нужно ничего особенного, вы можете использовать Yeoman Generator, который создаст полный проект, основанный на некоторых основных вопросах.
Установка генератора
Чтобы установить генератор Yeoman, выполните следующую команду в терминале или командной строке:
|
1 2 |
<span class="token function">npm</span> <span class="token function">install</span> -g generator-keystone |
Затем в пустом каталоге выполните следующую команду, чтобы запустить генератор:
|
1 2 |
yo keystone |
Вам будет задан ряд вопросов, и через некоторое время ваш проект будет готов к использованию.
Вопросы генератора
Генератор KeystoneJS предоставляет несколько функций, некоторые из которых являются необязательными, и вы можете выбрать то, что вы хотите в процессе установки.

Следующий список содержит большинство задаваемых вопросов, в зависимости от того, что вы выбираете, вы можете увидеть некоторые различия:
- Как называется ваш проект?
Вы можете выбрать имя, которое будет отображаться при обращении к вашему сайту, например, в панели администратора. - Хотите ли вы использовать Pug, Nunjucks, Twig или Handlebars для шаблонов?
По умолчанию вы можете выбрать один из четырех разных языков шаблонов. Но вы не ограничены этими четырьмя, вы можете установить любой язык, который хотите. - Какой CSS-препроцессор вы бы хотели?
Как и в случае с языками шаблонов, вы можете выбрать любой язык стилей. Возможны варианты Less, Sass и Stylus, но вы не ограничены этими; Вы можете выбрать нужный язык или перейти непосредственно с простым CSS, если хотите. - Хотите включить блог?
Не всем веб-сайтам нужен блог, но вы можете легко получить его, выбрав «yesВ результате получается простой блог, где вы можете писать посты в простом редакторе WYSIWYG . - Вы хотите добавить галерею изображений?
Если вы решите создать галерею изображений, вы получите возможность загружать изображения с помощью панели администратора, которая также может сохранять их в сторонних службах, и они будут отображаться на домашней странице в виде простых изображений. Любые дополнительные функции или настройки на вашей стороне. - Вы хотите добавить контактную форму?
Вы можете получать сообщения от своих зрителей, активировав функцию контактной формы. Он создаст форму во внешнем интерфейсе, и все отправленные сообщения будут сохранены в базе данных. - Как бы вы хотели назвать модель пользователя?
Со значениемuserВы можете выбрать другое значение в зависимости от ваших потребностей, если вы хотите, чтобы все было организовано. - Введите адрес электронной почты для первого администратора
Это адрес электронной почты, который вы будете использовать для входа в систему как первый пользователь с правами администратора. - Пожалуйста, используйте временный пароль, так как он будет сохранен в виде простого текста и измените его после первого входа в систему.
Напишите простой пароль для предыдущего пользователя, он может быть любым, так как его следует изменить (рекомендуется) после входа в систему. - Хотите создать новый каталог для своего проекта?
Вы можете выбрать Нет, если текущий каталог, в котором вы запускали генератор, является каталогом, в котором вы хотите создать файлы, в противном случае создается новый каталог с именем проекта. - Вы хотите включить конфигурацию электронной почты в свой проект?
Если вы выберете « да» , шаблон электронной почты будет настроен, и вы также сможете добавить настройки для интеграции Mailgun; сервис, который используется для отправки электронных писем. - Наконец, вы хотели бы добавить дополнительные комментарии кода в свой проект?
Эта опция особенно полезна, если вы создаете сайт для изучения и изучения, если вы выберете « да» в этой опции, приведенный код будет содержать большое количество комментариев, объясняющих все.
Запуск приложения
Перед запуском сервера убедитесь, что MongoDB также выполняется на порте по умолчанию ( 27017 Когда все будет готово, вы можете запустить сервер, выполнив:
|
1 2 |
node keystone |
Вот и все. Счастливого взлома!
KeystoneJS против WordPress
В то время как KeystoneJS и WordPress имеют существенные различия, обе имеют значительную аудиторию: разработчики, желающие создавать веб-сайты на основе баз данных.
