Что такое Express.js?

440

Я изучаю в Node.js .

  1. Что такое Express.js ?
  2. Какова цель этого с Node.js?
  3. Зачем нам нужен Express.js? Как нам полезно использовать с Node.js?
  4. Что такое Redis ? Это идет с Express.js?
Винод
источник
28
Прокрутите вниз до ответа вики-сообщества (который имеет +50 наград). Я нашел это более полезным, чем отмеченный ответ.
Шишир Гупта

Ответы:

266

Это слишком просто, но Express.js для Node.js то же, что Ruby on Rails или Sinatra для Ruby .

Express 3.x - это облегченная платформа веб-приложений, помогающая организовать ваше веб-приложение в архитектуру MVC на стороне сервера. Вы можете использовать различные варианты языка шаблонов (например, EJS , Jade и Dust.js ).

Затем вы можете использовать базу данных наподобие MongoDB с Mongoose (для моделирования), чтобы предоставить бэкэнд для вашего приложения Node.js. Express.js в основном помогает вам управлять всем, от маршрутов до обработки запросов и представлений.

Redis - это хранилище ключей / значений - обычно используется для сеансов и кэширования в приложениях Node.js. Вы можете сделать намного больше с этим, но это то, для чего я использую это. Я использую MongoDB для более сложных отношений, таких как строковые элементы <-> order <-> пользовательские отношения. Существуют модули (прежде всего connect-redis), которые будут работать с Express.js. Вам нужно будет установить базу данных Redis на свой сервер.

Вот ссылка на руководство по Express 3.x: https://expressjs.com/en/3x/api.html

chovy
источник
20
Экспресс больше похож на синатру, чем на рельсы.
половина
11
Экспресс был специально вдохновлен Синатрой. Вероятно, его наиболее важной особенностью является маршрутизация; он также делает доступным все промежуточное программное обеспечение, предоставляемое Connect (до того момента, когда все, кроме наиболее специализированных приложений, которым требуется промежуточное программное обеспечение Connect, вероятно, будут использовать Express).
Ebohlman
Я бы сказал, что Redis идеально подходит для сложных отношений на самом деле.
плюс-
Ссылка EJS в настоящее время не работает.
Дэвид Спектор
Я действительно не понимаю, как MVC относится к Express. Если я правильно помню, у Экспресса нет моделей и нет просмотров. Это основанный на промежуточном программном обеспечении фреймворк, а не MVC-фреймворк. Пожалуйста, объясните это.
Герман
382

1) Что такое Express.js?

Express.js - это фреймворк Node.js. Это самый популярный фреймворк на данный момент (самый популярный на NPM).

Введите описание изображения здесь,

Он построен на основе конфигурации и гранулярной простоты промежуточного программного обеспечения Connect. Некоторые люди сравнивают Express.js с Ruby Sinatra с громоздким и самоуверенным Ruby on Rails .

2) Какова цель этого с Node.js?

Что вам не нужно повторять один и тот же код снова и снова. Node.js - это низкоуровневый механизм ввода / вывода , который имеет модуль HTTP. Если вы просто используете модуль HTTP, много работы, такой как анализ полезной нагрузки, куки, хранение сессий (в памяти или в Redis ), выбор правильного шаблона маршрута на основе регулярных выражений , придется заново реализовать. С Express.js он как раз для вас.

3) Зачем нам нужен Express.js? Как нам полезно использовать с Node.js?

Первый ответ должен ответить на ваш вопрос. Если нет, то попробуйте написать небольшой сервер REST API в простом Node.js (то есть, используя только основные модули), а затем в Express.js. Последнее займет у вас в 5-10 раз меньше времени и строк кода.

Что такое Redis? Это идет с Express.js?

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

Посмотрите мое руководство по REST API серверу с Express.js .

MVC но не само по себе

Express.js сам по себе не является фреймворком модель-представление-контроллер. Вам нужно принести свои собственные библиотеки объектно-реляционного отображения, такие как Mongoose для MongoDB, Sequelize ( http://sequelizejs.com ) для баз данных SQL, Waterline ( https://github.com/balderdashy/waterline ) для многих баз данных, в стек.

альтернативы

Другие структуры Node.js для рассмотрения ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

ОБНОВЛЕНИЕ: я собрал этот ресурс, который помогает людям в выборе фреймворков Node.js: http://nodeframework.com

ОБНОВЛЕНИЕ 2: Мы добавили некоторую статистику GitHub на nodeframework.com, чтобы теперь вы могли сравнить уровень социального доказательства (звезды GitHub) для 30+ фреймворков на одной странице.

введите описание изображения здесь

Полный стек:

Просто REST API:

Ruby on Rails вроде:

Синатра, как:

Другой:

Middleware:

Генераторы статических сайтов:

Azat
источник
Будет ли правильно сказать, что - Express.js - это модуль Node.js (который вы указали в качестве фреймворка в первой строке). Я слышал термин nodeJs moduleдовольно часто. Фреймворк внутри фреймворка для меня немного новость.
RBT
Да, как и на практике, Express IS является модулем Node Package Manager (npm) (он же пакет), если он добавлен в приложение, как и другие модули из npm. (Если вы посмотрите на исходную папку приложения Node Express, вы увидите папку с именем node_modules. Она будет содержать подпапку с именем express.) Но она гораздо более полезна, чем большинство других модулей из npm, потому что она имеет загрузка зависимых модулей, которые эффективно предоставляют кодировщику приложения API для общих задач. Фреймворк внутри фреймворка? Больше похоже на каркас реализации, присоединяемый к каркасу создания сервера.
Магистраль
15
  1. Что такое Express.js?

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

Каркасы построены на экспрессе.

Несколько популярных фреймворков Node.js построены на Express:

LoopBack: расширяемая среда Node.js с открытым исходным кодом для быстрого создания динамических сквозных API REST.

Sails: MVC-фреймворк для Node.js для создания практичных готовых приложений.

Kraken: безопасный и масштабируемый уровень, который расширяет Express, обеспечивая структуру и соглашение.

ОЗНАКОМЛЕНИЕ: Множество полнофункциональных JavaScript-фреймворков, упрощающих и ускоряющих разработку веб-приложений.

  1. Какова цель этого с Node.js?
  2. Зачем нам нужен Express.js? Как нам полезно использовать с Node.js?

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

Например,

  • Хотите сессий? Это здесь
  • Хотите, чтобы POST анализировал тело / строку запроса? Это здесь
  • Хотите легко создавать шаблоны из нефрита, усов, ejs и т. Д.? Это здесь
  • Хотите изящную обработку ошибок, которая не приведет к сбою всего сервера?
Мухаммед Шахзад
источник
10
  1. Express.js - это модульная веб-инфраструктура для Node.js
  2. Используется для облегчения создания веб-приложений и сервисов.
  3. Express.js упрощает разработку и облегчает написание безопасных, модульных и быстрых приложений. Вы можете сделать все это в простом старом Node.js, но некоторые ошибки могут (и будут) появляться, включая проблемы безопасности (например, неправильная экранирование строки)
  4. Redis - это система баз данных в памяти, известная своей высокой производительностью. Нет, но вы можете использовать его с Express.js с помощью клиента Redis

Я не мог быть более кратким, чем это. Для всех других ваших потребностей и информации, Google - ваш друг.

praetoriaen
источник
3

ExpressJS является скелетной рамкой веба - приложений поверх NodeJS.

Он может быть использован для быстрого создания WebApps, RESTFUL API и т. Д.

Поддерживает несколько шаблонных движков, таких как Jade, EJS.

В качестве основных функций ExpressJS сохраняет только минималистскую функциональность, поэтому по умолчанию не поддерживается ни ORM, ни DB. Но с небольшим усилием приложения expressjs могут быть интегрированы с различными базами данных.

Руководство по началу работы по созданию приложений ExpressJS можно найти по следующей ссылке:

ExpressJS Вводное Учебное пособие

Rishabh.IO
источник
3

Express - это модульная структура для Node, которую вы можете использовать для приложений, основанных на серверах, которые будут «прослушивать» любые запросы ввода / подключения от клиентов. Когда вы используете его в Node, это просто говорит о том, что вы запрашиваете использование встроенного Express-файла из ваших Node-модулей.

Express - это «основа» многих веб-приложений, которые имеют свою основу в NodeJS. Из того, что я знаю, его основной актив - провидение системы маршрутизации, которая обслуживает службы "взаимодействия" между двумя хостами. Есть много альтернатив для этого, таких как Паруса.

Андрей-Кристиан Эне
источник
2

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

Вот ссылка на видео о том, как быстро настроить приложение для узла с помощью экспресс- https: //www.youtube.com/watch? v=QEcuSSnqvck

Frostiy
источник
Потрясающее объяснение для начинающих!
Анкит Пандей
0

Express.js, созданный TJ Holowaychuk и теперь управляемый сообществом. Это один из самых популярных фреймворков в node.js. Express также можно использовать для разработки различных продуктов, таких как веб-приложения или RESTful API. Дополнительную информацию можно найти на официальном сайте expressjs.com.

Раши Гоял
источник