Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
博主個(gè)人小程序已經(jīng)上線:【中二少年工具箱】
專欄簡(jiǎn)介
本系列文章由淺入深,從基礎(chǔ)知識(shí)到實(shí)戰(zhàn)開發(fā),非常適合入門同學(xué)。
零基礎(chǔ)讀者也能成功由本系列文章入門,但如果您具備以下基礎(chǔ),將會(huì)事半功倍:
1. HTML基礎(chǔ)
2. css基礎(chǔ)
3. js基礎(chǔ)
當(dāng)然,即使從未接觸過前端代碼的小白,也能輕松學(xué)習(xí)本系列課程,因?yàn)槲視?huì)在文章中簡(jiǎn)略穿插前端基礎(chǔ)知識(shí)。
由于各平臺(tái)對(duì)專欄文章的支持度不同,所以如果您看到這篇文章的平臺(tái),系統(tǒng)學(xué)習(xí)專欄文章的操作不夠絲滑,可以先關(guān)注小程序,后續(xù)小程序會(huì)開發(fā)專欄博客功能。可以通過二維碼地址小程序二維碼,掃碼關(guān)注。
有前端HTML+css+js開發(fā)經(jīng)驗(yàn)的同學(xué),應(yīng)該會(huì)有疑問,我以前開發(fā)前端頁(yè)面不用下載任何環(huán)境,寫出代碼,拖到瀏覽器里,就能正常顯示。
為什么學(xué)習(xí)vue要下載node這么麻煩呢?
這是因?yàn)関ue有自己的一套語(yǔ)法,但是萬(wàn)變不離其宗,最終顯示到頁(yè)面上的,其實(shí)還是html+css+js。那么vue語(yǔ)法是如何變成html三件套的呢?答案就是node。node是一個(gè)環(huán)境,也可以理解為是一個(gè)軟件,或者容器,它主要的作用就是把vue的語(yǔ)法編譯成html語(yǔ)法。
如果難以理解,我們可以不用深究。只需要知道,vue想要正常運(yùn)行,需要一個(gè)環(huán)境,那就是nodejs。
既然這么麻煩,為什么還有那么多人使用vue,而不是直接寫html?那肯定是因?yàn)楫?dāng)我們?nèi)腴T后,基于vue完成項(xiàng)目,更簡(jiǎn)單、更強(qiáng)大……
總之,不要有畏難情緒。任何框架的產(chǎn)生與流行,一定是因?yàn)樗芙鉀Q某些問題,降低編碼的工作量、難度等等。
如果只關(guān)注學(xué)習(xí)vue3的同學(xué),可以不需要過多了解node版本管理工具。從nodejs中文網(wǎng)下載穩(wěn)定版的nodejs,然后按照步驟一步步安裝即可。
nodejs中文網(wǎng)下載地址:https://www.nodejs.com.cn/
在這里插入圖片描述
新手不要多想,選擇這個(gè)最穩(wěn)定版本即可。
有一定基礎(chǔ)的同學(xué),可以下載nvm,或者博主自主開發(fā)的node版本管理工具,只適配windows系統(tǒng)。登錄上面小程序首頁(yè)后,可以獲取工具最新版本下載鏈接:
在這里插入圖片描述
這是nodejs 18.19.0版的鏈接地址:https://npmmirror.com/mirrors/node/v18.19.0/node-v18.19.0-x64.msi 下載后,按照步驟依次安裝即可。
1. 雙擊軟件,進(jìn)入安裝界面
在這里插入圖片描述
2.接受協(xié)議
在這里插入圖片描述
3.選擇下載地址,最好默認(rèn)
在這里插入圖片描述
4.下一步即可。這里會(huì)自動(dòng)把nodejs添加到環(huán)境變量,所以推薦新手用這個(gè)安裝包的形式,能簡(jiǎn)化很多工作。
在這里插入圖片描述
5.繼續(xù)下一步
在這里插入圖片描述
6.最后一步,點(diǎn)擊install安裝即可。
在這里插入圖片描述
前端編輯器(IDE)使用最廣泛的有三個(gè):
1. vscode
2. webstorm
3. hbuilderx
vscode,免費(fèi)的代碼編輯器,背靠微軟,信譽(yù)有保障,最近兩年比較火。我沒有使用這個(gè)軟件,是因?yàn)樽畛踅佑|的是webstorm,用習(xí)慣了,轉(zhuǎn)vscode不太舒服。
webstorm,付費(fèi)的代碼編輯器,但是網(wǎng)上破解方案滿天飛,很容易按照方案破解。作為老牌前端編輯器,功能強(qiáng)大,使用絲滑。如果有破解經(jīng)驗(yàn),可以使用這個(gè),后期可能會(huì)把破解功能寫到自己的工具里去。
hbuilderx,國(guó)產(chǎn)唯一能打的前端編輯器,但是和前面兩個(gè)比,還是有缺陷,但是uniapp官方指定編輯器,基于uniapp開發(fā)小程序,目前只能使用hbuilderx。如果目前只是入門vue3,建議從前面兩個(gè)里面選一個(gè)。
編最近對(duì)Node特別感興趣,所以就趁著周末的時(shí)間搭了一個(gè)簡(jiǎn)單的登錄注冊(cè)的一個(gè)小后臺(tái)。
這部分主要是,從前端發(fā)送ajax請(qǐng)求到后臺(tái),如果返回參數(shù)是成功,則登錄,否則,打印相關(guān)參數(shù);
代碼
這是界面
后臺(tái)用的是Node.js,框架用的express,數(shù)據(jù)庫(kù)用的mysql;
數(shù)據(jù)庫(kù)結(jié)構(gòu)
表結(jié)構(gòu)
node代碼如下:
express是node的基礎(chǔ)框架,這里邊有坑的地方是:返回值的時(shí)候,必須返回對(duì)象。
掌握一門后臺(tái)語(yǔ)言,對(duì)于現(xiàn)在的前端工作來說,越來越重要了,代碼之路,漫漫求索,共勉之,兄弟姐妹們。
天終于把樸靈老師寫的《深入淺出Node.js》給學(xué)習(xí)完了, 這本書不是一本簡(jiǎn)單的Node入門書籍,它沒有停留在Node介紹或者框架、庫(kù)的使用層面上,而是從不同的視角來揭示Node自己內(nèi)在的特點(diǎn)和結(jié)構(gòu)。建議有一定Node基礎(chǔ)或者做過Node方面的小項(xiàng)目的同學(xué)閱讀,看完以后你的思維會(huì)有很奇特的碰撞,我看的時(shí)候就常常會(huì)有這樣的想法:“哦,原來這個(gè)功能是這樣實(shí)現(xiàn)的哦”。下面這篇文章是我第二次閱讀《深入淺出Node.js》的一些學(xué)習(xí)記錄,并且通過百度腦圖這個(gè)工具來畫出思維導(dǎo)圖,每天將自己的學(xué)習(xí)總結(jié)寫在這篇文章下面。圖片文字太小可以右鍵從新標(biāo)簽頁(yè)打開圖片,然后點(diǎn)擊就可以放大顯示。 新增原始文件腦圖地址,這樣大家就可以直接到腦圖去看思維導(dǎo)圖
Node簡(jiǎn)介
這一章簡(jiǎn)要介紹了Node,從中可以了解Node的發(fā)展歷程及其帶來的影響和價(jià)值。
為什么叫Node?起初,Ryan Dahl稱他的項(xiàng)目為web.js,就是一個(gè)Web服務(wù)器,但是項(xiàng)目的發(fā)展超過了他當(dāng)初單純開發(fā)一個(gè)Web服務(wù)器的想法,變成構(gòu)建網(wǎng)絡(luò)應(yīng)用的一個(gè)基本框架,這樣可以在它的基礎(chǔ)上構(gòu)建更多的東西,諸如服務(wù)器、客戶端、命令行工具等。Node發(fā)展為一個(gè)強(qiáng)制不共享任何資源的單線程、單進(jìn)程系統(tǒng),包括十分適宜網(wǎng)絡(luò)的庫(kù),為構(gòu)建大型分布式應(yīng)用程序提供了基礎(chǔ)設(shè)施,其目標(biāo)也是成為一個(gè)構(gòu)建快速、可伸縮的網(wǎng)絡(luò)應(yīng)用平臺(tái)。它自身非常簡(jiǎn)單,通過通信協(xié)議來組織很多Node,非常容易通過擴(kuò)展來達(dá)成構(gòu)建大型網(wǎng)絡(luò)應(yīng)用的目的。每一個(gè)Node進(jìn)程都構(gòu)成這個(gè)網(wǎng)絡(luò)應(yīng)用中的一個(gè)節(jié)點(diǎn),這是它名字所含意義的真諦。
模塊機(jī)制
這一章主要介紹Node的模塊機(jī)制,從中了解到Node如何實(shí)現(xiàn)CommonJS模塊和包規(guī)范的。在這一章中,我們?cè)敿?xì)的解釋了模塊在引用過程中的編譯、加載規(guī)則。另外,我們還能讀到更深度的關(guān)于Node自身源代碼的組織架構(gòu)。
CommonJS規(guī)范為JavaScript定制了一個(gè)美好的愿景—希望JavaScript能夠在任何地方運(yùn)行。
異步I/O
這一章展示了Node中我們將異步I/O作為主要設(shè)計(jì)理念的原因。另外,還會(huì)介紹到異步I/O的詳細(xì)實(shí)現(xiàn)過程。
事件循環(huán)是異步實(shí)現(xiàn)的核心,它與瀏覽器中的執(zhí)行模型基本上保持一致。而向古老的Rhino,盡管是較早就能在服務(wù)器運(yùn)行的JavaScript運(yùn)行時(shí)但是執(zhí)行模型并不像瀏覽器采用事件驅(qū)動(dòng),而是使用像其他語(yǔ)言一樣采用同步I/O作為主要模型,這造成它在性能上面無(wú)法發(fā)揮。Node正是依靠構(gòu)建了一套完善的高性能異步I/O框架,打破了JavaScript在服務(wù)器止步不前的局面。
異步編程
這一章主要介紹異步編程,其中最常見的異步編程問題介紹,也有詳細(xì)的解決方案。在這一章中我們可以接觸到Promise、事件、高階函數(shù)是如何進(jìn)行流程控制的。 (這一章建議多看書)
內(nèi)存控制
這一章主要介紹了Node的內(nèi)存控制,主要內(nèi)容有垃圾回收、內(nèi)存限制、查看內(nèi)存、內(nèi)存泄漏、大內(nèi)存應(yīng)用等細(xì)節(jié)。
Node將JavaScript的主要應(yīng)用場(chǎng)景幫到了服務(wù)器端,相應(yīng)要考慮的細(xì)節(jié)也與瀏覽器端不同,在服務(wù)器端,資源向來是寸土寸金,要為海量用戶服務(wù),就使得一切資源都要高效循環(huán)利用,需要更嚴(yán)謹(jǐn)為每一份資源作出安排。
理解Buffer
這一章主要介紹了前端JavaScript里不能遇到的Buffer。由于Node中會(huì)涉及頻繁的網(wǎng)絡(luò)和磁盤I/O,處理字節(jié)流數(shù)據(jù)會(huì)是很常見的行為,這部分的場(chǎng)景與純粹的前端開發(fā)完全不同。
體會(huì)過JavaScript友好字符串操作后,有些開發(fā)者可能會(huì)形成思維定勢(shì),將Buffer當(dāng)作字符串來理解。但字符串與Buffer之間有實(shí)質(zhì)性的差異,即Buffer是二進(jìn)制數(shù)據(jù),字符串與Buffer之間存在編碼關(guān)系。因此,理解Buffer的諸多細(xì)節(jié)十分必要,對(duì)于如何高效處理二進(jìn)制十分有用。
網(wǎng)絡(luò)編程
這一章介紹了Node支持的TCP,UDP,HTTP編程,還講了有關(guān)于Websocket與TSL、HTTPS的介紹。
利用Node可以十分方便地搭建網(wǎng)絡(luò)服務(wù)器,不需要專門的Web服務(wù)器作為容器,僅僅需要幾行代碼就可以構(gòu)建服務(wù)器。Node提供了net、dgram、http、https這4個(gè)模塊,分別用于處理TCP、UDP、HTTP、HTTPS,適用于服務(wù)端和客戶端。
構(gòu)建Web應(yīng)用
這一章主要介紹了構(gòu)建Web應(yīng)用過程中用到的大多數(shù)技術(shù)細(xì)節(jié),如數(shù)據(jù)處理、路由、MVC、模板、RESTful等。 我覺得這一章對(duì)于我們開發(fā)一個(gè)Nodejs方面的應(yīng)用很有指導(dǎo)性作用,整理本章細(xì)節(jié)就可以完成一個(gè)功能的Web開發(fā)框架,這章的目的也就是希望讀者學(xué)習(xí)過這一章后能夠?qū)ode開發(fā)帶來地圖式的啟發(fā),在開發(fā)Web應(yīng)用時(shí)能夠心有輪廓,明了細(xì)微。
玩轉(zhuǎn)進(jìn)程
這一章主要介紹Node的多進(jìn)程技術(shù),以及如何借助多進(jìn)程方式來提升應(yīng)用的可用性和性能。從嚴(yán)格意義上面來講,Node并非真正的單線程架構(gòu),在第3章我們還敘述過Node自身還有一定的I/O線程存在,這些I/O線程由底層libuv處理,這部分線程對(duì)于JavaScript開發(fā)者是透明的,只在C++擴(kuò)展開發(fā)時(shí)才會(huì)關(guān)注到。JavaScript代碼永遠(yuǎn)運(yùn)行在V8上,是單線程的。本章將圍繞JavaScript部分展開,所以屏蔽底層細(xì)節(jié)的討論。
測(cè)試
這一章主要介紹Node的單元測(cè)試和性能測(cè)試技巧。測(cè)試的意義在于,在用戶消費(fèi)產(chǎn)出的代碼之前,開發(fā)者首先消費(fèi)他,給予其重要的質(zhì)量保證。
測(cè)試包括單元測(cè)試、性能測(cè)試、安全測(cè)試和功能測(cè)試等幾個(gè)方面,本章將從Node實(shí)踐的角度來介紹單元測(cè)試和性能測(cè)試。
產(chǎn)品化
“行百里路半九十”,完成產(chǎn)品開發(fā)的代碼編寫后,才完成了項(xiàng)目的第一步。這是一章介紹了將Node產(chǎn)品化所需要的注意到的細(xì)節(jié),如項(xiàng)目工程化、代碼部署、日志、性能、監(jiān)控報(bào)警、穩(wěn)定性、異構(gòu)共存。 對(duì)于Node開發(fā)者而言,很多其他語(yǔ)言走過的路需要開發(fā)者帶著Node特效重新踐行一遍。這并不是壞事,Node更接近底層使得開發(fā)者對(duì)于細(xì)節(jié)的可控性非常高。
為此,為了學(xué)好前端,創(chuàng)建了一個(gè)學(xué)習(xí)交流裙,能夠與大家一起學(xué)習(xí)、交流。大家免費(fèi)領(lǐng)取面試題,電子書籍,特效項(xiàng)目源碼等干貨。
掃描圖中二維碼學(xué)習(xí)哦
先奉上一些資料圖:
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。