亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

初始Nodejs

2019-11-20 13:56:39
字體:
來源:轉載
供稿:網友

基本概念

Node.js,或者 Node,是一個可以讓 JavaScript 運行在服務器端的平臺。可以說,Node.js開創了javascript模塊化開發的先河,早期的javascript需求都很簡單,基本都是寫成函數的,然后是面向過程的寫法,后來慢慢的引入面向對象開發思想,再后來就慢慢寫成 類。最后node.js的出現才開始有了js模塊化開發的概念,這使得臃腫的js代碼免去了命名沖突等一系列開發難題。

Node最大的特點就是采用了異步式I/O與事件驅動的架構設計。Node.js是一個讓js運行在瀏覽器外的平臺。其最初目標是實現事件驅動,非阻塞I/O的web服務器

Node.js 只是一個 JavaScript 的運行環境(或者說是一組庫), 為標準 js 補充了有關異步 IO, 即讀寫網絡和文件的功能。
一個庫嘛,無非是調調 API 什么的,除了略反人類的事件回調之外,和其他后端語言(PHP, Python)也差不了多少。

Node.js使用的是單線程模式,每一個線程完成一個功能,一個進程可以有多個線程,對于所有的I/O都采用異步式的請求方式。每個異步式I/O請求完成后都會被推送到事件隊列,等待程序進程進行處理。

總之,node的核心思想就是:非阻塞,單線程和事件驅動。(同步對應的是阻塞,異步對應的是非阻塞)

Node.JS架構示意圖

單線程

javascript語言的執行環境是"單線程"(single thread)。
所謂"單線程",就是指一次只能完成一件任務。如果有多個任務,就必須排隊,前面一個任務完成,再執行后面一個任務,以此類推。

這種模式的好處是實現起來比較簡單,執行環境相對單純;壞處是只要有一個任務耗時很長,后面的任務都必須排隊等著,會拖延整個程序的執行。常見的瀏覽器無 響應(假死),往往就是因為某一段Javascript代碼長時間運行(比如死循環),導致整個頁面卡在這個地方,其他任務無法執行。

大部分 Web 應用的瓶頸都在 I/O, 即讀寫磁盤,讀寫網絡,讀寫數據庫。使用怎樣的策略等待這段時間,就成了改善性能的關鍵點

同步與異步

為了解決這個問題,Javascript語言將任務的執行模式分成兩種:同步(Synchronous)和異步(Asynchronous)。

"同步模式"就是上一段的模式,后一個任務等待前一個任務結束,然后再執行,程序的執行順序與任務的排列順序是一致的、同步的;"異步模式"則完全不同, 每一個任務有一個或多個回調函數(callback),前一個任務結束后,不是執行后一個任務,而是執行回調函數,后一個任務則是不等前一個任務結束就執 行,所以程序的執行順序與任務的排列順序是不一致的、異步的。

"異步模式"非常重要。在瀏覽器端,耗時很長的操作都應該異步執行,避免瀏覽器失去響應,最好的例子就是Ajax操作。在服務器端,"異步模式"甚至是唯一的模式,因為執行環境是單線程的,如果允許同步執行所有http請求,服務器性能會急劇下降,很快就會失去響應。

進程與線程

mac系統中的進程與線程

從圖中我們可以看出,一個進程可以包括多個線程,進程就好比工程里的車間,線程就是這個車間的工人,在引入線程的操作系統中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調度的基本單位。由于線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間并發執行的程度。

區別

線程和進程的區別在于,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧和程序計數器為其執行上下文。多線程主要是為了節約CPU時間,發揮利用,根據具體情況而定。線程的運行中需要使用計算機的內存資源和CPU。

模塊和包模塊

模塊:一個實現某些特定功能的文件,以實現模塊化編程。通過require(模塊名)引入模塊.
―模塊中的功能(如:變量,函數)通過賦給exports對象的某個屬性提供給調用者使用。

如何使用模塊?

在Node中使用模塊是非常方便的,在 JavaScript 代碼中可以直接使用全局函數 require() 來加載一個模塊。例如,我們可以使用require("http")來加載node中自帶的http服務器模塊,

包:包是一個文件夾,它將模塊封裝起來,用于發布、更新、依賴管理和版本控制。通過package.json來描述包的信息:入口文件,依賴的外部包等等。通過npm install命令來安裝包,并通過require使用包。

異步式 I/O 與事件驅動

Node.js 的異步機制是基于事件的,每一個 I/O就是一次請求,所有的磁盤 I/O、網絡通信、數據庫查詢都以非阻塞的方式請求,返回的結果由事件循環來處理。如下圖所示:

Node.js 進程在同一時刻只會處理一個事件,完成后立即進入事件循環檢查并處理后面的事件。這樣做的好處是,CPU 和內存在同一時間集中處理一件事,同時盡可能讓耗時的 I/O 操作并行執行

開始node編程

在這里,我推薦大家使用webstorm進行node.js的開發,方便又快捷,比起cmd,或者Mac下的終端都好用太多了。

至于node的安裝大家就自行百度吧,這里就不贅述了,看下webstorm下的node編程界面吧:
我們只需要在編寫好的node代碼界面按鼠標右鍵,然后點擊Run就行啦,方便又快捷吧

下面是node的輸出界面:

Mac系統下進行web開發,我推薦大家使用的三款工具是:coda2,webstorm和Sublime text3這些是目前我已經的最好的開發工具了,大家不妨試試哪個更符合自己的口味。

webstorm進行node開發需要先配置一定的文件,大家就自行百度吧,因為我的webstorm已經配置好了,所以沒法截圖給大家看步驟了,大概步驟是,在mac系統下是先點擊頂部欄的webstorm,然后點擊perference,然后點擊Node.js and NPM,然后在右側點擊configure配置,最后大概會是下面這個樣子:

windows系統下和這個流程步驟大概相似啊,我使用的版本是8.0.4的。

全局變量

在js編程中,我們最好給每個變量都添加上var關鍵字,以免污染全局命名空間,提高代碼的耦合風險。

console

console用于向標準輸出流standout(stdout)和標準錯誤流(stderr)輸出字符。

console.log()向標準輸出流打印字符并以換行符結束,其接受多個參數,將以類似C語言的printf()格式輸出

console.log(__dirname)輸出文件目錄

計算代碼運行時間

 console.time(label) console.timeEnd(label)

我們只需在開始和結束那里給同樣一個標簽即可,中間放你想要計算執行時間的任何代碼。

__filename__dirname

 console.log(__filename);// /Users/hwax/Desktop/My Project/avalon/hello.js console.log(__dirname);// /Users/hwax/Desktop/My Project/avalon
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久久| 欧美xxxx14xxxxx性爽| 国产精品亚发布| 在线观看日韩欧美| 日韩av网站导航| 日韩极品精品视频免费观看| 国产精品成人观看视频国产奇米| 精品少妇v888av| 亚洲国产精品推荐| 欧美日韩国产专区| 久久韩国免费视频| 国产69精品久久久久久| 国产精品高潮视频| 亚洲精品视频免费| 成人激情av在线| 欧美日韩在线视频观看| 久久久精品国产一区二区| 日本伊人精品一区二区三区介绍| 91夜夜未满十八勿入爽爽影院| 国产成人激情视频| 成人性生交大片免费观看嘿嘿视频| 成人乱色短篇合集| 亚洲视频一区二区| 欧美肥老太性生活视频| 欧美在线免费观看| 精品久久久久久中文字幕一区奶水| 亚洲国产天堂久久综合| 亚洲人成在线观| 国产日韩在线看片| 国产99视频在线观看| 欧美日韩一区二区在线| 午夜伦理精品一区| 成人精品一区二区三区| 国产在线98福利播放视频| 国产日产欧美a一级在线| 成人激情视频在线播放| 91精品免费看| 欧美激情视频给我| 亚洲精品综合精品自拍| 欧美黑人国产人伦爽爽爽| 亚洲精品成人久久| 日韩国产欧美精品在线| 2019最新中文字幕| 国产精品最新在线观看| 欧美一级大片在线免费观看| 国产精品久久综合av爱欲tv| 久久久久久久久亚洲| 亚洲成人黄色在线观看| 亚洲视频国产视频| 国语自产精品视频在线看| 成人字幕网zmw| 亚洲精品98久久久久久中文字幕| 亚洲欧美日韩精品久久| 亚洲美腿欧美激情另类| 精品国产老师黑色丝袜高跟鞋| 国产视频精品久久久| 国产91久久婷婷一区二区| 日韩av在线导航| 欧美激情第一页xxx| 亚洲大尺度美女在线| 亚洲欧美国产高清va在线播| 66m—66摸成人免费视频| 尤物九九久久国产精品的分类| 亚洲精品在线看| 亚洲欧美成人在线| 久久影院资源网| 久久好看免费视频| 精品中文视频在线| 色999日韩欧美国产| 欧美精品videosex性欧美| 国产精品一区二区三区毛片淫片| 成人黄色片网站| 国产成人高潮免费观看精品| 亚洲影院色无极综合| 亚洲аv电影天堂网| 色噜噜狠狠狠综合曰曰曰| 亚洲天堂av在线免费| 欧美激情按摩在线| 欧美一级在线播放| 亚洲人成77777在线观看网| 精品国产户外野外| 欧美性猛交xxxx富婆| 在线播放日韩精品| 欧美尺度大的性做爰视频| 日韩在线视频免费观看| 国产精品香蕉在线观看| 久久久精品美女| 久久久精品日本| 精品久久久91| 亚洲人在线视频| 国产精品爽爽爽爽爽爽在线观看| 国产欧美在线看| 国产一区二区三区在线| 欧美成人在线免费| 精品久久久久久久久中文字幕| 秋霞av国产精品一区| 日韩在线观看免费网站| 日韩有码在线电影| 国产成人综合精品在线| 国产精品久久久久999| 91免费电影网站| 国产亚洲欧美日韩一区二区| 伊人亚洲福利一区二区三区| 国产精品色午夜在线观看| 2018中文字幕一区二区三区| 中文字幕亚洲字幕| 国产成人亚洲综合91| 综合136福利视频在线| 亚洲在线视频观看| 深夜成人在线观看| 国产精品对白刺激| 高清欧美电影在线| 中文字幕日韩视频| 91精品国产高清久久久久久91| 国产一区二区三区视频免费| 日韩成人xxxx| 日韩欧美国产视频| 亚洲一区二区三区视频| 91久久国产精品91久久性色| 色偷偷噜噜噜亚洲男人的天堂| 欧美高清视频免费观看| 亚洲欧美色婷婷| 久久国产色av| 国产精品美女网站| 91久久精品国产91久久性色| 亚洲欧美精品suv| 欧美一级视频免费在线观看| 亚洲人免费视频| 91精品一区二区| 欧美午夜影院在线视频| 欧美一级大片在线观看| 色综合久久精品亚洲国产| 日日狠狠久久偷偷四色综合免费| 国产一区二区视频在线观看| 国产亚洲精品综合一区91| 热re91久久精品国99热蜜臀| 国产精品旅馆在线| 国产精品欧美久久久| 91国产在线精品| 国产视频久久久久久久| 91精品视频专区| 亚洲视频一区二区三区| 在线视频一区二区| 欧美激情精品久久久久久黑人| 亚洲综合大片69999| 亚洲一区二区三区久久| 久久久国产成人精品| 亚洲精品永久免费| 国产成人高潮免费观看精品| 国产精品男女猛烈高潮激情| 国产精品吊钟奶在线| 国内免费精品永久在线视频| 欧美日韩亚洲视频一区| 成人美女免费网站视频| 国产一区二区三区久久精品| 另类天堂视频在线观看| 欧美精品在线观看| 久久夜色精品国产亚洲aⅴ| 成人国产在线视频| 川上优av一区二区线观看| 亚洲va码欧洲m码| 国内精品久久久久| 精品少妇v888av| 一区二区三区四区在线观看视频|