Express.js là gì?


439

Tôi là một người học trong Node.js .

  1. Express.js là gì?
  2. Mục đích của nó với Node.js là gì?
  3. Tại sao chúng ta thực sự cần Express.js? Làm thế nào hữu ích cho chúng tôi sử dụng với Node.js?
  4. Redis là gì? Nó có đi kèm với Express.js không?

28
Cuộn xuống câu trả lời của cộng đồng-wiki (có hơn 50 tiền thưởng). Tôi thấy rằng hữu ích hơn câu trả lời được đánh dấu.
Shishir Gupta

Câu trả lời:


266

Đây là quá đơn giản hóa nó, nhưng Express.jsNode.jsRuby on Rails hoặc Sinatracủa Ruby .

Express 3.x là một khung ứng dụng web nhẹ để giúp tổ chức ứng dụng web của bạn thành một kiến ​​trúc MVC ở phía máy chủ. Bạn có thể sử dụng nhiều lựa chọn cho ngôn ngữ tạo khuôn mẫu của mình (như EJS , JadeDust.js ).

Sau đó, bạn có thể sử dụng cơ sở dữ liệu như MongoDB với Mongoose (để tạo mô hình) để cung cấp phụ trợ cho ứng dụng Node.js của bạn. Express.js về cơ bản giúp bạn quản lý mọi thứ, từ các tuyến đường, đến xử lý các yêu cầu và chế độ xem.

Redis là một kho lưu trữ khóa / giá trị - thường được sử dụng cho các phiên và bộ đệm trong các ứng dụng Node.js. Bạn có thể làm nhiều hơn với nó, nhưng đó là những gì tôi đang sử dụng nó cho. Tôi sử dụng MongoDB cho các mối quan hệ phức tạp hơn, như mục hàng <-> thứ tự <-> mối quan hệ người dùng. Có các mô-đun (đáng chú ý nhất là kết nối-redis) sẽ hoạt động với Express.js. Bạn sẽ cần cài đặt cơ sở dữ liệu Redis trên máy chủ của mình.

Đây là liên kết đến hướng dẫn Express 3.x: https://expressjs.com/en/3x/api.html


20
Express giống như sinatra hơn là đường ray.
nửa

11
Express được truyền cảm hứng đặc biệt bởi sinatra. Có lẽ tính năng quan trọng nhất của nó là định tuyến; nó cũng cung cấp tất cả các phần mềm trung gian được cung cấp bởi kết nối (đến điểm mà tất cả các ứng dụng chính xác nhất cần phần mềm trung gian của kết nối sẽ có khả năng sử dụng express).
ebohlman

Tôi sẽ nói redis là lý tưởng cho các mối quan hệ phức tạp trong thực tế.
cộng-

Liên kết EJS hiện đang chết.
David Spector

Tôi thực sự không hiểu làm thế nào MVC liên quan đến Express. Nếu tôi nhớ chính xác thì Express không có mô hình và không có lượt xem. Đó là khung dựa trên phần mềm trung gian, không phải khung MVC. Hãy giải thích điều này.
Gherman

382

1) Express.js là gì?

Express.js là một khung công tác Node.js. Đó là khung phổ biến nhất hiện nay (được gắn sao nhiều nhất trên NPM).

Nhập mô tả hình ảnh ở đây.

Nó được xây dựng xung quanh cấu hình và tính đơn giản chi tiết của Connect middleware. Một số người so sánh Express.js với Ruby Sinatra so với Ruby on Rails cồng kềnh và gây tranh cãi .

2) Mục đích của nó với Node.js là gì?

Rằng bạn không phải lặp đi lặp lại cùng một mã. Node.js là một cơ chế I / O cấp thấp có mô-đun HTTP. Nếu bạn chỉ sử dụng mô-đun HTTP, rất nhiều công việc như phân tích tải trọng, cookie, lưu trữ phiên (trong bộ nhớ hoặc trong Redis ), việc chọn mẫu tuyến đường phù hợp dựa trên biểu thức thông thường sẽ phải được triển khai lại. Với Express.js, nó chỉ ở đó để bạn sử dụng.

3) Tại sao chúng ta thực sự cần Express.js? Làm thế nào hữu ích cho chúng tôi sử dụng với Node.js?

Câu trả lời đầu tiên sẽ trả lời câu hỏi của bạn. Nếu không, thì hãy thử viết một máy chủ API REST nhỏ trong Node.js đơn giản (nghĩa là chỉ sử dụng các mô-đun lõi) và sau đó trong Express.js. Cái sau sẽ đưa bạn ít hơn 5-10 lần thời gian và dòng mã.

Redis là gì? Nó có đi kèm với Express.js không?

Redis là một lưu trữ khóa-giá trị liên tục nhanh chóng. Bạn có thể tùy ý sử dụng nó để lưu trữ các phiên với Express.js, nhưng bạn không cần. Theo mặc định, Express.js có bộ nhớ lưu trữ cho các phiên. Redis cũng có thể được sử dụng cho các công việc xếp hàng, ví dụ, các công việc email.

Hãy xem hướng dẫn của tôi về máy chủ API REST với Express.js .

MVC nhưng không phải bởi chính nó

Express.js không phải là khung công tác mô hình-khung nhìn-trình điều khiển. Bạn cần phải mang theo đối tượng quan hệ riêng thư viện bản đồ của bạn như Mongoose cho MongoDB, Sequelize ( http://sequelizejs.com ) cho cơ sở dữ liệu SQL, mực nước ( https://github.com/balderdashy/waterline ) đối với nhiều cơ sở dữ liệu vào cây rơm.

Lựa chọn thay thế

Các khung công tác Node.js khác cần xem xét ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

CẬP NHẬT: Tôi tập hợp tài nguyên này để hỗ trợ mọi người trong việc chọn các khung công tác Node.js: http://nodeframework.com

CẬP NHẬT2: Chúng tôi đã thêm một số thống kê GitHub vào gật đầu, vì vậy bây giờ bạn có thể so sánh mức độ bằng chứng xã hội (sao GitHub) cho hơn 30 khung trên một trang.

nhập mô tả hình ảnh ở đây

Đầy đủ ngăn xếp:

Chỉ cần API REST:

Ruby on Rails như:

Sinatra thích:

Khác:

Middleware:

Trình tạo trang tĩnh:


Sẽ đúng khi nói rằng - Express.js là mô-đun Node.js (mà bạn đã xử lý như khung trong dòng đầu tiên của bạn). Tôi đã nghe thuật ngữ nodeJs modulekhá thường xuyên. Khung bên trong một khung là một chút tin tức với tôi.
RBT

Có, như trong thực tế, Express IS là mô-đun Trình quản lý gói nút (npm) (còn gọi là gói) với số lượng được thêm vào một ứng dụng như các mô-đun khác từ npm. (Nếu bạn nhìn vào thư mục nguồn của ứng dụng Node Express, bạn sẽ thấy một thư mục có tên là node_modules. Nó sẽ chứa một thư mục con có tên express.) Nhưng nó hữu ích hơn nhiều so với hầu hết các mô-đun khác ngoài npm tải các mô-đun phụ thuộc cung cấp hiệu quả cho bộ mã hóa ứng dụng API cho các tác vụ phổ biến. Khung bên trong một khung? Giống như một khung triển khai có thể gắn vào khung tạo máy chủ.
Thân cây

15
  1. Express.js là gì?

Express.js là khung máy chủ ứng dụng web Node.js, được thiết kế để xây dựng các ứng dụng web đơn, nhiều trang và lai. Đây là khung máy chủ chuẩn thực tế cho node.js.

Các khung được xây dựng trên Express.

Một số khung công tác Node.js phổ biến được xây dựng trên Express:

LoopBack: Khung Node.js mã nguồn mở, có khả năng mở rộng cao để nhanh chóng tạo các API REST đầu cuối động.

Sails: Khung MVC cho Node.js để xây dựng các ứng dụng thực tế, sẵn sàng sản xuất.

Kraken: Lớp bảo mật và có thể mở rộng giúp mở rộng Express bằng cách cung cấp cấu trúc và quy ước.

MEAN: Khung JavaScript fullstack được đề xuất giúp đơn giản hóa và tăng tốc phát triển ứng dụng web.

  1. Mục đích của nó với Node.js là gì?
  2. Tại sao chúng ta thực sự cần Express.js? Làm thế nào hữu ích cho chúng tôi sử dụng với Node.js?

Express thêm định tuyến đơn giản và hỗ trợ cho phần mềm trung gian Connect, cho phép nhiều tiện ích mở rộng và các tính năng hữu ích.

Ví dụ,

  • Muốn phiên? Nó ở đó
  • Muốn phân tích chuỗi cơ thể / truy vấn POST? Nó ở đó
  • Muốn dễ dàng tạo khuôn mẫu thông qua ngọc bích, ria mép, ejs, vv? Nó ở đó
  • Muốn xử lý lỗi duyên dáng sẽ không khiến toàn bộ máy chủ gặp sự cố?

10
  1. Express.js là một khung web mô-đun cho Node.js
  2. Nó được sử dụng để tạo các ứng dụng và dịch vụ web dễ dàng hơn
  3. Express.js đơn giản hóa việc phát triển và giúp viết các ứng dụng an toàn, mô-đun và nhanh chóng dễ dàng hơn. Bạn có thể làm tất cả những điều đó trong Node.js cũ đơn giản, nhưng một số lỗi có thể (và sẽ) xuất hiện, bao gồm các vấn đề bảo mật (ví dụ: không thoát khỏi một chuỗi đúng cách)
  4. Redis là một hệ thống cơ sở dữ liệu trong bộ nhớ được biết đến với hiệu suất nhanh. Không, nhưng bạn có thể sử dụng nó với Express.js bằng ứng dụng khách redis

Tôi không thể súc tích hơn thế này. Đối với tất cả các nhu cầu và thông tin khác của bạn, Google là bạn của bạn.


3

ExpressJS là bare-bones ứng dụng web framework trên đầu trang của NodeJS.

Nó có thể được sử dụng để xây dựng WebApps, API RESTFUL, v.v.

Hỗ trợ nhiều công cụ mẫu như Jade, EJS.

ExpressJS chỉ giữ một chức năng tối giản là các tính năng cốt lõi và do đó không có ORM hoặc DB được hỗ trợ như mặc định. Nhưng với một chút nỗ lực, các ứng dụng expressjs có thể được tích hợp với các cơ sở dữ liệu khác nhau.

Để biết hướng dẫn bắt đầu về cách tạo ứng dụng ExpressJS, hãy xem liên kết sau:

Hướng dẫn giới thiệu ExpressJS


3

Express là khung mô-đun cho Node mà bạn có thể sử dụng cho các ứng dụng dựa trên máy chủ sẽ "lắng nghe" cho bất kỳ yêu cầu đầu vào / kết nối nào từ máy khách. Khi bạn sử dụng nó trong Node, nó chỉ nói rằng bạn đang yêu cầu sử dụng tệp Express tích hợp từ các mô-đun Node của bạn.

Express là "xương sống" của rất nhiều Ứng dụng web có mặt sau của chúng trong NodeJS. Từ những gì tôi biết, tài sản chính của nó là sự cung cấp của một hệ thống định tuyến xử lý các dịch vụ "tương tác" giữa 2 máy chủ. Có rất nhiều lựa chọn thay thế cho nó, chẳng hạn như Sails.


2

Express.js là một khung được sử dụng cho Node và nó được sử dụng phổ biến nhất như là một ứng dụng web cho nút js.

Đây là liên kết đến video về cách nhanh chóng thiết lập ứng dụng nút với express https://www.youtube.com/watch?v=QEcuSSnqvck


Giải thích tuyệt vời cho người mới bắt đầu tuyệt đối!
Ankit Pandey

0

Express.js được tạo bởi TJ Holowaychuk và hiện được quản lý bởi cộng đồng. Đây là một trong những khung công tác phổ biến nhất trong node.js. Express cũng có thể được sử dụng để phát triển các sản phẩm khác nhau như ứng dụng web hoặc API RESTful. Để biết thêm thông tin, vui lòng đọc trên trang web chính thức của expressjs.com.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.