Какие инструменты и фреймворк дополняют Node.js

?

Среда Node.js включает серверы, интерфейс к базам данных, серверные и клиентские фреймворки.

Обзор экосистемы Node.js. Это не исчерпывающее и не окончательное, наоборот, это сфера постоянного развития.

Node.js et son environnement

Как видно, основными компонентами среды являются помимо Node.js API, бэкэнд, расширения, интерфейс с клиентом и сам клиент, приложение или страница с возможным фреймворком.

На самом деле интерфейс деления на серверную часть и клиентскую часть, и у нас есть некоторая свобода помещать его суть на ту или иную сторону. Вот в подробностях, какие программы можно использовать для выполнения роли каждого компонента.

Бэкэнд

CommonJS - проект создания стандартного API для языка JavaScript с целью, чтобы он был таким же богатым, как Java или другой популярный язык.
На рабочем столе должны быть созданы приложения с графическим интерфейсом JavaScript. На сайте представлен список уже выполненных модулей.
Уже заданные стандарты: Модули (используются Node.js), файловая система, сокеты, тест, пакеты, JSGI (альтернатива JavaScript CGI).

Async.js для перехода в синхронный или параллельный режим. Главная полнота по отношению к Node касается сложения обратных вызовов, которые идут параллельно с асинхронным режимом, что, кстати, является главным преимуществом системы .
С Async мы избавляемся от коллбэков и приближаемся к простоте корутинов языка Go.

CouchDB - менеджер баз данных, хранящий документы в виде структур JSON и интегрированный в Node.js как node-couchdb. Этот формат хорошо подходит для системы, основанной на JavaScript, так как код JSON можно автоматически парсить на этом языке и легко конвертировать в HTML. С помощью CouchDB можно также формулировать запросы в JavaScript.
Он может заменить MySQL, который менее подходит для одного веб-сайта, даже если второй подходит для приложения, хранящего такие данные, как логин и пароль. CouchDB не быстрее MySQL и, однако, не является реляционным.
Он позволяет управлять документацией и при необходимости просматривать ее с помощью шаблона, как это делает Wordpress. Шаблон Wordpress на самом деле является PHP-кодом, который также может использоваться в бэкенде с Node.js, как показано на этом сайте.

Есть такие деривативы, как couchbase, сервер для мобильных и другие. Альтернативой является MongoDB, которая также хранит документы в формате JSON, быстрее, но менее подходит для мобильных устройств. CouchDB также использует HTTP, а не MongoDB. Посмотрите на это сравнение.

Если тебе нужно что-то более легкое, в стиле SQLite (который тоже работает с Node.js), но легко распространяемое с помощью приложения, менеджер сам пишет на JS такое решение, как NDB.

Другое решение на время выбора - использовать промежуточную библиотеку вроде Knex.js, которая облегчает запросы и взаимодействует с большинством BDD.

Bower - менеджер пакетов, созданный Twitter для Node. Он позволяет динамически добавлять библиотеки JavaScript, страницы или изображения. Он динамически делает то, что NPM делает статически и, следовательно, позволяет пользователю загружать дополнительные компоненты из инструкций JavaScript.

Rendr - генератор HTML-страниц для приложения, использующего Backbone.js. Приложение динамически работает в JavaScript, но созданные страницы статичны.

Интерфейс: Серверные фреймворки

Они помогают создавать страницы и, следовательно, имеют ту же роль, что и PHP или ROR. С помощью этих модулей Node.js может заменить классическую CMS, написанную на PHP, Java или другом языке.

Они служат бэкендом для веб-приложений и предоставляют им полезные услуги, такие как подключение к базе данных.

Инфраструктура приложений Mojito

Он работает на Linux и основан на YUI, но трансформируется в модуль, чтобы служить бэкендом для онлайн-приложения. Та же инфраструктура может использоваться клиентом. Он позволяет создавать функциональные компоненты на сервере или на клиенте.
Бэкенд заменяет PHP для создания страниц и отправляет их в браузер, который отображает их либо статически как есть, либо динамически с JavaScript-кодом ЮИ.

Он играет ту же роль, что и nodeQuery: фреймворк jQuery на сервере, или socketStream .

Экспресс или Hapi.js

Эти два фреймворка имеют одну и ту же цель - упростить использование Node со стороны сервера, обеспечив более интуитивный код. Ими пользуются крупные площадки .

Метеор

Современная веб-инфраструктура для облачных приложений. Автоматическое обновление страниц. Он работает на стороне клиента, но имеет интерфейс Node.js на сервере. Поскольку Express упрощает создание приложений, он добавляет API для клиентского кода в браузере. Его сравнивают с Ruby On Rails в версии JavaScript. Специфика - возможность делать запросы к базе данных в клиентском коде.
Он не использует npm, в отличие от Derby, который является еще одним фреймворком MVC, и другой альтернативой RoR.
Meteor не легко используется с другими фреймворками или интерфейсами, построенными для других фреймворков. Приложение должно быть базовым для Meteor. Он также может оказаться медленным, когда аудитория расширяется.

Имеет собственный протокол связи между клиентом и Node на сервере под названием DDP (Distributed Data Protocol) на основе JSON. Достаточно объявить Meteor.publish на сервере и Meteor.subscribe на клиенте, и система автоматически управляет всеми обменами данными.
Использование GraphQL для запросов упрощает доступ к базе данных.

Сервер

Node.js - это не сервер, а фреймворк для создания сервера страниц или приложений с помощью сценария с использованием предоставленного им API.

Nginx

Это сервер, который может служить фронтом для Node.js на выделенном хостинге. Он используется для статических веб-сайтов, в то время как только Node.js используется для онлайн-приложений.

Только клиентские фреймворки

Это также, возможно, серверные фреймворки, если они имеют часть, реализуемую в модуле, но они дополняются клиентским API. Чисто клиентский фреймворк был бы чем-то вроде jQuery или любого другого фреймворка Ajax.

Браусерифи

Упаковав код JavaScript на стороне сервера в файл, включенный в документ, можно использовать объекты, входящие в код сервера. После этого необходимые команды помещаются в код клиента, и он может использовать объекты, созданные различными модулями.

Нужно всегда запускать узел с серверным скриптом, но этот сокращен, вся логика переносится на клиентскую сторону.

Он расширяемый, можно создать файл для включения для любого модуля.

Кошмар

Автоматизация действий в браузере, на переднем крае Phantom.js. Помимо того, что он имитирует поведение пользователя, он также позволяет удалять callbacks и писать процессы в линейной форме. По версии, Phantom не стабильен.
Подобные инструменты: Dalek.js, SeleniumHQ плагин Firefox .

Узел без браузера

Модули для использования Node в качестве сервера и обработки данных.

Phantom.js

Этот инструмент используется для обработки веб-страниц в фоновом режиме, а также для создания HTML или SVG-содержимого с помощью встроенного средства рендеринга webkit. Преимущество браузера заключается в абсолютном контроле над страницей как объектом и способом отображения содержимого.
Phantom.js, даже если он включает сервер, может использоваться с Node.js и позволяет интегрировать WebKit в эту среду.
В марте 2018 года проект был заархивирован, а его разработка приостановлена с неурегулированной кириллой багов. Его заменяет Chrome Headless.

Возможно, нужно добавить определение из Headless Browser... Это не безголовый браузер, а, скорее, браузер без отображения, что позволяет обрабатывать страницы программой. Мы всегда их показываем, когда хотим.

Узел-qt

Добавив Qt в качестве модуля, можно реализовать интерфейс, отображающий окна на рабочем столе для представления содержимого и проходящий через браузер при использовании других модулей Node. Конечно, мы можем сделать это проще с Электроном.

Создать исполняемый файл

Доступны несколько инструментов для преобразования приложения Node со всеми его модулями в одну исполняемую, простую в установке программу:

Расширения Node, специализированных API или CMS в JavaScript

Начало CMS на основе Node.js с модулями для создания блога, статического или динамического.

Есть мало общих хостингов, которые предлагают сервер Node.js. Сервис Githube Page действительно позволяет разместить приложение бесплатно. Другое решение - использовать виртуальный сервер, который может получить за €5 в месяц.

Wheat

Ваш контент размещается на GitHub. Модуль позволяет просматривать его как веб-сайт. Node-blog тем же автором - специализированная версия, используемая для демо-сайта, показывающая, что он может использоваться в производстве .

Петрифи

Как альтернатива HTML, его сайт создается локально с помощью редактора кода и после генерации страниц обновляется удаленный сайт, на обычном сервере.

Специализированные API

Messenger.js

Инфраструктура для создания почтового сервера и обмена данными через JSON-файлы.

Утилиты

ShellJS

Реализация оболочки Unix на Node.js. Позволяет использовать известные команды, такие как mkdir, ls, grep и т.д. Также работает на Windows.

ЭлементДерево

Создание XML-документов, их чтение или запись. Инструмент сериализации Node-Swiz позволяет преобразовывать и сохранять объекты в формате XML или JSON, а также преобразовывать их между двумя форматами.