2016-04-01 61 views
3

我不確定Angular 2與NodeJs/Express站在哪裏。 Angular和Node可以一起工作,還是隻能將其中的一個用於Web項目?大型項目的Angular 2或NodeJs/Express

+3

Angular&Node的工作真的很好。他們是不同的東西,Angular - >前端(客戶端),NodeJS - >後端(服務器) – Tushar

+3

我覺得你很困惑。 Angular是一個前端框架。 Node/Express是後端框架。他們在一起奇妙地工作。它們根本不衝突。 – Bolza

+0

NodeJs也是Javascript,它在服務器端工作,但Angular 2也是如此...它使用Nodejs來做到這一點? – Satch3000

回答

3

角讓你構建完整的Web應用程序而不需要Node.js

沒有Node.js和expr但是,您需要清理Web服務器。如果您有偏好,您可以使用Apache,Nginx或其他。

但是,如果您正在尋找創建後端或您的前端與之通信的API,那麼您可以引入Node.js並開發API。但是,您可以使用其他框架或工具。

您也可以將一些Node模塊與構建工具(例如,Grunt)來優化您的前端資產,如CSS,JS,Images等。這將允許您在構建完成後更好地控制向客戶端提供的靜態資產的條件。

總之,您可以使用Angular構建完整的Web應用程序而不需要Node.js,但Node可以讓您更好地控制項目資產,並且如果您希望允許您創建支持您的單獨應用程序前端。

1

Angular 2用於前端代碼,Node通常用於後端。

然而,節點可以用來提供前端。 (大多數人要麼不知道這個或忘記它)。有些人還使用Node作爲任務運行者來縮小客戶端代碼,預處理客戶端代碼等。

例如,使用節點,您可以將LESS或SASS或STYLUS文件即時轉換爲CSS文件,而CSS文件然後被傳送到您的瀏覽器。

實時重新加載對CSS或代碼更改執行實時更新,而無需執行瀏覽器刷新。

任務運行者可以自動注入Bower腳本依賴關係。 Grunt和Gulp簡化了爲客戶端代碼提供服務的流程節點任務運行程序。

顯然,在生產環境中,您不會使用任務運行器。任務運行人員是爲了開發目的或用於構建目的。

我們使用Node的Gulp在開發環境中提供服務。我們也使用Gulp來構建。但在生產中,我們通過NGINX提供靜態構建生成的文件。

所有這些的缺點是努力獲得良好的管道。

2

不,角度和節點不同 Angular是一個功能非常強大的前端框架,可讓您在客戶端使用MVC結構,而Node.js則是在服務器端使用Javascript的一種實現方式,可讓您製作「主動「服務器(使用Node,您可以執行異步任務,不僅可以使用腳本生成網頁,例如,使用websocket,這是PHP無法實現的功能)。

但是,它對於Web應用程序來說是一個很好的解決方案,因爲它們都使用Javascript,並且使用本地Json進行請求。

但是目前,我正在一個PHP客戶端的angular2項目中工作。由於MVC結構,它比jQuery或其他框架更好,但是當您將它與PHP一起使用時,您必須做出一些安排(例如,當您使用angular發送POST請求時,數據使用JSON進行編碼,這是PHP不理解:所以我在我的客戶端是轉換一個JSON對象到一個簡單的url編碼字符串函數中使用...)

我希望我回答你的問題,

文森特

+0

PHP和[json](http://php.net/manual/en/book.json.php) – Drew

+0

是的,但對我來說很難解析POST請求(使用UrlEncoded,很簡單,你只需要使用$ _POST和filter_input,但是使用JSON格式,您必須使用$ HTTP_RAW_POST_DATA,然後使用json_decode解析它,然後驗證它...) – Vincent