Co to jest Express.js?

439

Jestem uczniem w node.js .

  1. Co to jest Express.js ?
  2. Jaki jest tego cel w Node.js?
  3. Dlaczego tak naprawdę potrzebujemy Express.js? W jaki sposób korzystamy z Node.js?
  4. Co to jest Redis ? Czy pochodzi z Express.js?
vinod
źródło
28
Przewiń w dół do odpowiedzi na wiki społeczności (która ma +50 nagród). Uważam, że jest to bardziej pomocne niż zaznaczona odpowiedź.
Shishir Gupta

Odpowiedzi:

266

To nadmierne uproszczenie, ale Express.js jest dla Node.js tym, czym Ruby on Rails lub Sinatra jest dla Ruby .

Express 3.x to lekka platforma aplikacji internetowych, która pomaga zorganizować aplikację internetową w architekturę MVC po stronie serwera. Możesz użyć różnych opcji dla swojego języka szablonów (takich jak EJS , Jade i Dust.js ).

Następnie możesz użyć bazy danych takiej jak MongoDB z Mongoose (do modelowania), aby zapewnić backend dla aplikacji Node.js. Express.js zasadniczo pomaga zarządzać wszystkim, od tras, po obsługę żądań i widoków.

Redis to magazyn kluczy / wartości - często używany do sesji i buforowania w aplikacjach Node.js. Możesz z tym zrobić znacznie więcej, ale do tego właśnie go używam. Używam MongoDB do bardziej złożonych relacji, takich jak element zamówienia <-> zamówienie <-> relacje użytkownika. Istnieją moduły (w szczególności Connect-Redis), które będą działać z Express.js. Będziesz musiał zainstalować bazę danych Redis na swoim serwerze.

Oto link do przewodnika po Express 3.x: https://expressjs.com/en/3x/api.html

chovy
źródło
20
Express jest bardziej jak sinatra niż szyny.
Halfelf
11
Express został specjalnie zainspirowany sinatrą. Prawdopodobnie jego najważniejszą cechą jest routing; udostępnia także całe oprogramowanie pośrednie dostarczane przez connect (do tego stopnia, że ​​wszystkie aplikacje, oprócz tych najbardziej wyspecjalizowanych, które potrzebują oprogramowania pośredniego Connect, prawdopodobnie będą korzystały z ekspresu).
ebohlman
Powiedziałbym, że redis jest idealny do skomplikowanych relacji.
plus-
Łącze EJS jest obecnie martwe.
David Spector
Naprawdę nie rozumiem, w jaki sposób MVC odnosi się do Express. Jeśli dobrze pamiętam, Express nie ma modeli ani widoków. To framework oparty na oprogramowaniu pośrednim, a nie MVC. Proszę wyjaśnij to.
Gherman,
382

1) Co to jest Express.js?

Express.js to framework Node.js. Jest to obecnie najpopularniejszy framework (najbardziej znany z NPM).

Wpisz opis zdjęcia tutaj.

Opiera się na konfiguracji i szczegółowej prostocie oprogramowania pośredniego Connect. Niektórzy ludzie porównują Express.js do Ruby Sinatra z nieporęcznymi i opiniotwórczymi Ruby on Rails .

2) Jaki jest jej cel w Node.js?

Że nie musisz powtarzać tego samego kodu w kółko. Node.js to niskopoziomowy mechanizm we / wy z modułem HTTP. Jeśli wystarczy użyć modułu HTTP, dużo pracy jak parsowania ładunek, ciasteczka, przechowywania sesji (w pamięci lub w Redis ), wybór odpowiedniego wzoru trasy w oparciu o wyrażenia regularne będzie mieć do ponownego wdrożenia. Dzięki Express.js możesz go używać.

3) Dlaczego tak naprawdę potrzebujemy Express.js? W jaki sposób korzystamy z Node.js?

Pierwsza odpowiedź powinna odpowiedzieć na twoje pytanie. Jeśli nie, spróbuj napisać mały serwer REST API w zwykłym Node.js (to znaczy przy użyciu tylko podstawowych modułów), a następnie w Express.js. Ten ostatni zajmie Ci 5-10 razy mniej czasu i linii kodu.

Co to jest Redis? Czy pochodzi z Express.js?

Redis to szybki, trwały magazyn kluczy i wartości. Opcjonalnie możesz go użyć do przechowywania sesji w Express.js, ale nie musisz. Domyślnie Express.js ma pamięć dla sesji. Redis może być również używany do zadań w kolejce, na przykład zadań e-mail.

Sprawdź mój poradnik na temat serwera REST API z Express.js .

MVC, ale nie sam

Express.js sam w sobie nie jest strukturą kontrolera widoku modelu. Musisz wprowadzić własne biblioteki mapowania obiektowo-relacyjnego, takie jak Mongoose dla MongoDB, Sequelize ( http://sequelizejs.com ) dla baz danych SQL, Waterline ( https://github.com/balderdashy/waterline ) dla wielu baz danych w stos.

Alternatywy

Inne frameworki Node.js do rozważenia ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

AKTUALIZACJA: Złożyłem ten zasób, który pomaga ludziom wybrać frameworki Node.js: http://nodeframework.com

AKTUALIZACJA2: Dodaliśmy kilka statystyk GitHub do nodeframework.com, dzięki czemu możesz teraz porównać poziom dowodu społecznego (gwiazdy GitHub) dla ponad 30 frameworków na jednej stronie.

wprowadź opis zdjęcia tutaj

Pełny stos:

Po prostu REST API:

Ruby on Rails, takie jak:

Sinatra jak:

Inny:

Middleware:

Generatory witryn statycznych:

Azat
źródło
Czy słuszne będzie stwierdzenie, że - Express.js jest modułem Node.js (który zająłeś się jako framework w pierwszej linii). moduleDość często słyszę termin „nodeJs” . Framework wewnątrz frameworka to dla mnie trochę nowości.
RBT
Tak, tak jak w praktyce, Express IS to moduł Menedżera pakietów węzłów (npm) (inaczej pakiet), o ile jest dodawany do aplikacji, podobnie jak inne moduły z npm. (Jeśli spojrzysz na folder źródłowy aplikacji Node Express, zobaczysz folder o nazwie node_modules. Będzie on zawierał podfolder o nazwie express.) Ale jest o wiele bardziej przydatny niż większość innych modułów poza npm, ponieważ ma obciążenie zależnych modułów, które skutecznie zapewniają koderowi aplikacji interfejs API do typowych zadań. Ramy w ramach? Bardziej przypomina strukturę implementacji dołączaną do struktury tworzenia serwera.
Bagażnik
15
  1. Co to jest Express.js?

Express.js to platforma serwera aplikacji WWW Node.js, zaprojektowana do budowania jedno-, wielostronicowych i hybrydowych aplikacji internetowych. Jest to de facto standardowa platforma serwera dla node.js.

Ramy zbudowane na Expressie.

Kilka popularnych frameworków Node.js jest zbudowanych na Expressie:

LoopBack: Wysoce rozszerzalna, otwarta platforma Node.js do szybkiego tworzenia dynamicznych interfejsów API REST typu end-to-end.

Żagle: Framework MVC dla Node.js do tworzenia praktycznych, gotowych do produkcji aplikacji.

Kraken: Bezpieczna i skalowalna warstwa, która rozszerza Express, zapewniając strukturę i konwencję.

MEAN: Opiniowana platforma JavaScript fullstack, która upraszcza i przyspiesza tworzenie aplikacji internetowych.

  1. Jaki jest tego cel w Node.js?
  2. Dlaczego tak naprawdę potrzebujemy Express.js? W jaki sposób korzystamy z Node.js?

Express dodaje martwe proste routing i obsługę oprogramowania pośredniego Connect, umożliwiając wiele rozszerzeń i przydatnych funkcji.

Na przykład,

  • Chcesz sesji? Jest tutaj
  • Chcesz parsować treść / ciąg zapytania POST? Jest tutaj
  • Chcesz łatwo tworzyć szablony za pomocą jadeitu, wąsów, ejs itp? Jest tutaj
  • Chcesz płynną obsługę błędów, która nie spowoduje awarii całego serwera?
Muhammad Shahzad
źródło
10
  1. Express.js jest modułową strukturą internetową dla Node.js
  2. Służy do łatwiejszego tworzenia aplikacji i usług internetowych
  3. Express.js upraszcza programowanie i ułatwia pisanie bezpiecznych, modułowych i szybkich aplikacji. Możesz zrobić to wszystko w zwykłym starym Node.js, ale niektóre błędy mogą (i będą) pojawiać się, w tym obawy związane z bezpieczeństwem (np. Nieprawidłowe ucieczkę łańcucha)
  4. Redis to system bazy danych w pamięci znany z szybkiej wydajności. Nie, ale można go używać z Express.js przy użyciu klienta redis

Nie mógłbym być bardziej zwięzły niż to. W przypadku wszystkich innych potrzeb i informacji Google jest Twoim przyjacielem.

praetoriaen
źródło
3

ExpressJS jest goły web framework aplikacji na górze NodeJS.

Można go używać do szybkiego tworzenia aplikacji internetowych, interfejsów API RESTFUL itp.

Obsługuje wiele silników szablonów, takich jak Jade, EJS.

ExpressJS zachowuje jedynie minimalistyczną funkcjonalność jako podstawowe funkcje i jako takie nie ma domyślnie obsługiwanych ORM ani DB. Ale przy odrobinie wysiłku aplikacje expressjs można zintegrować z różnymi bazami danych.

Aby uzyskać przewodnik na temat tworzenia aplikacji ExpressJS, zapoznaj się z następującym linkiem:

Samouczek wprowadzający ExpressJS

Rishabh.IO
źródło
3

Express to struktura modułów dla węzła, której można używać do aplikacji opartych na serwerach, które będą „nasłuchiwać” wszelkich żądań wejścia / połączenia od klientów. Kiedy używasz go w Węźle, to po prostu mówi, że żądasz użycia wbudowanego pliku Express z modułów Node.

Express to „kręgosłup” wielu aplikacji internetowych, które mają zaplecze w NodeJS. Z tego co wiem, jego głównym atutem jest opatrzność systemu routingu, który obsługuje usługi „interakcji” między 2 hostami. Istnieje wiele alternatyw, takich jak żagle.

Andrei-Cristian Ene
źródło
2

Express.js jest strukturą używaną dla Node i jest najczęściej używana jako aplikacja internetowa dla węzła js.

Oto link do filmu na temat szybkiego konfigurowania aplikacji węzła za pomocą ekspresowej https://www.youtube.com/watch?v=QEcuSSnqvck

Frostiy
źródło
Niesamowite wyjaśnienie dla absolutnie początkujących!
Ankit Pandey
0

Express.js stworzony przez TJ Holowaychuk i obecnie zarządzany przez społeczność. Jest to jeden z najpopularniejszych frameworków w node.js. Express może być również wykorzystywany do opracowywania różnych produktów, takich jak aplikacje internetowe lub RESTful API. Więcej informacji można znaleźć na oficjalnej stronie expressjs.com.

Rashi Goyal
źródło