JavaScript 技術(shù)自 1995 年發(fā)布以來取得了長足的進步。我們見證了 ECMAScript 規(guī)範(fàn)的多個主要版本以及單頁 Web 應(yīng)用程序的興起,所有這些都由客戶端 JavaScript 框架提供支持。最初,所有 JavaScript 開發(fā)和創(chuàng)新都在瀏覽器中完成,因為那是唯一支持該語言的環(huán)境。隨著時間的推移,Web 開發(fā)人員開始意識到 JavaScript 的許多最有用的功能(非阻塞、事件驅(qū)動、許多人熟悉的語言)可以在瀏覽器以外的環(huán)境中使用。這啟動了 JavaScript 社區(qū)第二輪創(chuàng)新,導(dǎo)致 JavaScript 在服務(wù)器和數(shù)據(jù)庫上運行。
突然之間,了解 JavaScript 並不會自動將你歸類為“前端 Web 開發(fā)人員”。如果您精通該語言,除了前端用戶體驗之外,您還可以構(gòu)建服務(wù)器和數(shù)據(jù)庫?,F(xiàn)在,開發(fā)人員首次可以使用僅JavaScript 構(gòu)建整個 Web 應(yīng)用程序。這種趨勢通常被稱為“全棧 JavaScript”或“純 JavaScript 解決方案”。結(jié)合四種流行的 JavaScript 技術(shù):MongoDB、Express、AngularJS 和 Node.js 來構(gòu)建 Web 應(yīng)用程序已變得非常流行,以至於它被稱為“MEAN ?!?。
- MongoDB – MongoDB 是一種所謂的 NoSQL 數(shù)據(jù)庫。可以將其視為文檔數(shù)據(jù)庫,而不是由行、列和表組成。主要用例是存儲 JSON 數(shù)據(jù);在使用 JavaScript 編寫應(yīng)用程序時非常適合。它在關(guān)係和對模式的嚴(yán)格遵守方面可能有所欠缺,但在速度、可擴展性和易用性方面卻彌補了不足。
- Express – Express 是一種精簡的 Web 服務(wù)器框架,旨在使使用 Node 構(gòu)建 Web 服務(wù)器更輕鬆、更易於維護。它是一個不拘泥於形式的框架,為開發(fā)人員提供了高度的可定制性,但“低級”到足以訪問其構(gòu)建的基礎(chǔ) Node 框架。 Express 提供易於使用的請求路由器、cookie 管理、靜態(tài)文件服務(wù)器以及創(chuàng)建企業(yè)級 Web 服務(wù)器所需的許多其他 HTTP 構(gòu)建塊。
- AngularJS – Angular 是一種功能豐富的客戶端 MVC JavaScript 框架。它可用於創(chuàng)建強大且複雜的單頁 Web 應(yīng)用程序。它具有內(nèi)置的雙向數(shù)據(jù)綁定和自己的基於 HTML 的模板語言。它還有一個名為“指令”的功能,允許您使用新屬性甚至新元素擴展 HTML。 Angular 也具有很高的可測試性,這可能不是開發(fā)中最有趣的面向,但它通常是最重要的,並且在客戶端代碼中經(jīng)常被忽視。最後,它提供約定和最佳實踐來幫助開發(fā)人員構(gòu)建客戶端解決方案。
- Node – Node 是一個用於構(gòu)建服務(wù)器和網(wǎng)絡(luò)應(yīng)用程序的 JavaScript 運行時。它提供了在瀏覽器中找到的所有 JavaScript 功能,以及用於文件和網(wǎng)絡(luò) I/O 的附加功能。它使用 Google 的 V8 引擎(與 Google Chrome 中使用的引擎相同)來執(zhí)行 JavaScript。它還擁有非?;钴S的開發(fā)人員社區(qū)和 Node 模塊生態(tài)系統(tǒng)(Express 就是這樣一個模塊)。雖然已經(jīng)有其他服務(wù)器端 JavaScript 實現(xiàn),但就開發(fā)和愛好者以及大型公司的採用而言,Node 迄今為止是最成功的。
如果您像我一樣是 JavaScript 的粉絲,那麼您應(yīng)該對僅使用 JavaScript 構(gòu)建整個 Web 應(yīng)用程序的前景感到興奮。 MEAN 棧是一個非常熱門的話題,網(wǎng)上有大量關(guān)於如何開始使用它的信息。事實上,信息如此之多,以至於“入門”的想法似乎有點令人生畏。
這就是我和 Colin Ihrig 為此寫了一本書的原因。在書中,我們討論了構(gòu)成 MEAN 棧的四種技術(shù)中的每一種。我們涵蓋了每種技術(shù)的最重要功能,這些功能將幫助您快速上手並提高工作效率。然而,解釋只能走這麼遠(yuǎn)。除了許多代碼示例外,我們還將在整本書中逐步構(gòu)建一個簡單的 HR 風(fēng)格的 Web 應(yīng)用程序。您將學(xué)習(xí)一項技術(shù),查看一些代碼示例,然後逐步使用該技術(shù)構(gòu)建一個真實的系統(tǒng)。在本書的結(jié)尾,您將擁有一個功能齊全的 Web 應(yīng)用程序,您可以根據(jù)本書中的信息自行使用和擴展。
關(guān)於使用 MEAN 進行全棧 JavaScript 開發(fā)的常見問題
全棧 JavaScript 開發(fā)中的 MEAN 棧是什麼?
MEAN 棧是用於開發(fā) Web 應(yīng)用程序的基於 JavaScript 的技術(shù)的集合。 MEAN 是 MongoDB、Express.js、AngularJS 和 Node.js 的首字母縮寫。 MongoDB 是一個 NoSQL 數(shù)據(jù)庫,Express.js 是一個在 Node.js 上運行的 Web 應(yīng)用程序框架,AngularJS 是一個 JavaScript MVC 框架,Node.js 是一個用於事件驅(qū)動的服務(wù)器端和網(wǎng)絡(luò)應(yīng)用程序的執(zhí)行環(huán)境。
為什麼我的 Web 開發(fā)項目應(yīng)該選擇 MEAN 棧?
MEAN 棧是 Web 開發(fā)的一個強大、高效且靈活的選擇。它完全基於 JavaScript,這意味著您可以對服務(wù)器端和客戶端腳本使用相同的語言。這可以使您的開發(fā)過程更加簡化和高效。此外,MEAN 棧中的所有技術(shù)都是開源且免費使用的,這有助於降低成本。
MongoDB 在 MEAN 棧中是如何工作的?
MongoDB 是 MEAN 棧的數(shù)據(jù)庫組件。它是一個 NoSQL 數(shù)據(jù)庫,這意味著它可以處理大量數(shù)據(jù)並且具有高度的可擴展性。 MongoDB 以二進制 JSON 格式存儲數(shù)據(jù),這使得在客戶端和服務(wù)器之間傳遞數(shù)據(jù)變得容易。
Express.js 在 MEAN 棧中扮演什麼角色?
Express.js 是一個在 Node.js 上運行的 Web 應(yīng)用程序框架。它提供了一個簡單的界面來構(gòu)建 Web 應(yīng)用程序和 API,並且它處理您原本必須自己編寫的許多樣板代碼。這可以使您的開發(fā)過程更快、更高效。
AngularJS 如何融入 MEAN 棧?
AngularJS 是一個用於構(gòu)建 Web 應(yīng)用程序的 JavaScript MVC 框架。它提供了一種結(jié)構(gòu)化的 Web 應(yīng)用程序開發(fā)方法,具有雙向數(shù)據(jù)綁定和依賴注入等功能,可以使您的代碼更高效、更易於管理。
Node.js 在 MEAN 棧中扮演什麼角色?
Node.js 是一個用於事件驅(qū)動的服務(wù)器端和網(wǎng)絡(luò)應(yīng)用程序的執(zhí)行環(huán)境。它基於 V8 JavaScript 引擎構(gòu)建,這意味著它非???。 Node.js 也是非阻塞的,這意味著它可以同時處理許多連接,這使其成為實時應(yīng)用程序的絕佳選擇。
如何開始使用 MEAN 棧開發(fā)?
有很多資源可以幫助您開始使用 MEAN 棧開發(fā)。您可以先學(xué)習(xí)每種技術(shù),然後再學(xué)習(xí)它們?nèi)绾螀f(xié)同工作。網(wǎng)上有很多教程和指南,還有書籍和課程。
學(xué)習(xí) MEAN 棧的先決條件是什麼?
在開始學(xué)習(xí) MEAN 棧之前,您應(yīng)該對 JavaScript 有基本的了解。了解 Web 開發(fā)的基礎(chǔ)知識(如 HTML 和 CSS)也很有幫助。
MEAN 棧是否有替代方案?
是的,MEAN 棧有很多替代方案。一些流行的替代方案包括 MERN 棧(用 React 替換 AngularJS)、MEVN 棧(用 Vue.js 替換 AngularJS)和 LAMP 棧(使用 Linux、Apache、MySQL 和 PHP)。
我可以用 MEAN 棧構(gòu)建什麼樣的應(yīng)用程序?
MEAN 棧非常通用,您可以使用它來構(gòu)建各種應(yīng)用程序。這包括單頁應(yīng)用程序、社交網(wǎng)絡(luò)站點、實時應(yīng)用程序、電子商務(wù)站點等等。
以上是完整的堆棧JavaScript開發(fā)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

javascriptisidealforwebdevelogment,whilejavasuitslarge-scaleapplicationsandandandroiddevelopment.1)javascriptexceleatingingingingingingingbeatingwebexperienceswebexperienceswebexperiencesandfull-stackdeevermentwithnode.js.2)

在JavaScript中,選擇單行註釋(//)還是多行註釋(//)取決於註釋的目的和項目需求:1.使用單行註釋進行快速、內(nèi)聯(lián)的解釋;2.使用多行註釋進行詳細(xì)的文檔說明;3.保持註釋風(fēng)格的一致性;4.避免過度註釋;5.確保註釋與代碼同步更新。選擇合適的註釋風(fēng)格有助於提高代碼的可讀性和可維護性。

是的,javascriptcommentsarenectary和shouldshouldshouldseffectional.1)他們通過codeLogicAndIntentsgudedepleders,2)asevitalincomplexprojects,和3)handhanceClaritywithOutClutteringClutteringThecode。

Java和JavaScript是不同的編程語言,各自適用於不同的應(yīng)用場景。 Java用於大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁開發(fā)。

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

評論arecrucialinjavascriptformaintainingclarityclarityandfosteringCollaboration.1)heelpindebugging,登機,andOnderStandingCodeeVolution.2)使用林格forquickexexplanations andmentmentsmmentsmmentsmments andmmentsfordeffordEffordEffordEffordEffordEffordEffordEffordEddeScriptions.3)bestcractices.3)bestcracticesincracticesinclud

JavaScripthasseveralprimitivedatatypes:Number,String,Boolean,Undefined,Null,Symbol,andBigInt,andnon-primitivetypeslikeObjectandArray.Understandingtheseiscrucialforwritingefficient,bug-freecode:1)Numberusesa64-bitformat,leadingtofloating-pointissuesli

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)
