2012-09-27 121 views
312

我是學習者Node.js什麼是Express.js?

  1. 什麼是Express.js
  2. 它與Node.js的目的是什麼?
  3. 爲什麼我們實際上需要Express.js?如何使用Node.js對我們有用?
  4. 什麼是Redis?它是否帶有Express.js?
+10

向下滾動到社區維基答案(其中有+50賞金)。我發現比標記的答案更有幫助。 –

回答

195

它是在簡化,但Express.jsNode.js什麼Ruby on RailsSinatraRuby

Express 3.x是一個輕量級的Web應用程序框架,可幫助您將Web應用程序組織到服務器端的MVC體系結構中。您可以爲模板語言使用各種選項(如EJS,JadeDust.js)。

然後,您可以使用類似MongoDBMongoose(用於建模)的數據庫爲您的Node.js應用程序提供後端。 Express.js基本上可以幫助您管理所有事情,從路由到處理請求和視圖。

Redis是一個鍵/值存儲 - 通常用於Node.js應用程序中的會話。你可以做更多的事情,但這就是我使用它的原因。我使用MongoDB來處理更復雜的關係,如訂單項< - >訂單< - >用戶關係。有些模塊(最值得注意的是connect-redis)可以與Express.js一起使用。您需要在服務器上安裝Redis數據庫。

這裏是快遞3.x的引導鏈接:https://expressjs.com/en/3x/api.html

+19

Express更像是sinatra而不是rails。 – halfelf

+11

Express特別受到sinatra的啓發。其最重要的特點可能是路由;它還提供了由連接提供的所有中間件(除了最需要連接的中間件以外的所有專用應用程序都可能使用的中間件)。 – ebohlman

+0

我會說redis實際上是複雜關係的理想選擇。 –

260

1)什麼是Express.js?

Express.jsNode.js框架。這是目前最流行的框架(最突出的NPM)。

Enter image description here

它建立在連接中間件的配置和粒度簡單的基礎上。有些人將Express.js與Ruby Sinatra進行比較,而對比笨重和自以爲是的Ruby on Rails

2)它與Node.js的目的是什麼?

你不必一遍又一遍重複相同的代碼。 Node.js是一個具有HTTP模塊的低級別的I/O機制。如果你只是使用HTTP模塊,像解析有效負載,cookie,存儲會話(在內存中或在Redis),選擇基於regular expressions的正確路由模式很多工作將重新實現。 Express.js在那裏供您使用。

3)爲什麼我們實際上需要Express.js?如何使用Node.js對我們有用?

第一個答案應該回答你的問題。如果不是,那麼嘗試在普通Node.js(即,僅使用核心模塊)中編寫一個小的REST API服務器,然後在Express.js中編寫。後者將減少5-10倍的代碼時間和行數。

什麼是Redis?它是否帶有Express.js?

Redis是一個快速持久性鍵值存儲。您可以選擇使用它來存儲Express.js的會話,但不需要。默認情況下,Express.js具有會話的內存存儲空間。 Redis也可用於排隊作業,例如電子郵件作業。

結帳my tutorial on REST API server with Express.js

MVC但不是由本身

Express.js是本身的模型 - 視圖 - 控制器框架。您需要將自己的對象關係映射庫(例如用於MongoDB的Mongoose),用於SQL數據庫的Sequelize(http://sequelizejs.com),用於許多數據庫的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

UPDATE2:我們爲nodeframework.com添加了一些GitHub統計數據,所以現在您可以在一個頁面上比較30多個框架的社會證明(GitHub stars)級別。

enter image description here

全棧:

只是REST API:

Ruby on Rails的喜歡:

西納特拉,如:

其他:

中間件:

靜態網站生成器:

+3

好用的鏈接,謝謝。 – will

+0

爲你的專家提供一個相關的謎題! http://stackoverflow.com/questions/24349213/express-js-what-is-the-usual-backend-hosting – Fattie

+0

這是正確的說 - Express.js是一個Node.js模塊(你已經解決作爲第一行的框架)。我經常聽到nodeJs'module'這個詞。框架內的框架對我來說有點新聞。 – RBT

9
  1. Express.js是節點模塊化的Web框架。js
  2. 它用於更容易地創建Web應用程序和服務
  3. Express.js簡化了開發過程,使編寫安全,模塊化和快速應用程序變得更加容易。您可以在普通的舊Node.js中完成所有這些工作,但是一些錯誤可能(並且將會)出現,包括安全問題(例如,不能正確地轉義字符串)
  4. Redis是一種內存數據庫系統,以其快速的 性能。不,但你可以使用它與Express.js使用redis 客戶端

我不能比這更簡潔。對於您的其他需求和信息,Google是您的朋友。

10
  1. 什麼是Express.js?

Express.js是一個Node.js的Web應用程序服務器架構,專爲 建設單頁,多頁,和混合Web應用程序。它是 node.js事實上的標準服務器框架。

構建在Express上的框架。

幾種流行的Node.js的框架是建立在快遞:

環回:快速 創建動態終端到終端的REST API的高度可擴展的,開放源碼的Node.js框架。

風帆:MVC框架 Node.js用於構建實用的,可用於生產的應用程序。

Kraken:通過提供結構和約定來擴展Express的安全和可擴展層。

意思是:意見完整的JavaScript框架, 簡化和加速Web應用程序開發。

  1. 它與Node.js的目的是什麼?
  2. 爲什麼我們實際上需要Express.js?如何使用Node.js對我們有用?

Express增加了對Connect中間件的簡單路由和支持,允許多種擴展和有用的功能。

例如,

  • 希望會議?它在那裏
  • 想POST正文/查詢字符串解析?這是 那裏
  • 想通過玉,鬍子,ejs等容易模板?它有 那裏
  • 想要優雅的錯誤處理,不會導致整個服務器 崩潰?
2

ExpressJS是裸機在NodeJS之上的web應用程序框架。

它可以用來快速構建WebApps,RESTFUL APIs等。

支持多種模板引擎,如Jade,EJS。

ExpressJS只保留最低限度的功能作爲核心功能,因此默認情況下不支持ORM或DB。但通過一點點努力expressjs應用程序可以與不同的數據庫集成。

有關創建ExpressJS應用一個入門指南,看看下面的鏈接:

ExpressJS Introductory Tutorial

3

快遞節點的應用程序只是爲節點,您可以使用的應用程序基於服務器/ s的模塊框架, 「監聽」來自客戶端的任何輸入/連接請求。當您在Node中使用它時,它只是說您要求使用Node模塊中的內置Express文件。

Express是許多Web應用程序的後端在NodeJS中的「骨幹」。據我所知,其主要資產是處理2臺主機之間「交互」服務的路由系統。有很多替代品,比如Sails。希望我的回答有幫助。

1

Express.js由TJ Holowaychuk創建,現在由社區管理。它是node.js中最流行的框架之一。 Express也可用於開發各種產品,如Web應用程序或RESTful API。有關更多信息,請在expressjs.com官方網站上閱讀。

相關問題