nodejs零基礎詳細教程1:安裝+基礎概念

來源:互聯網
上載者:User

標籤:nod   如何使用   偶數   nodejs   阿里   分布   平台   系統   介面   

第一章 建議學習時間2小時  課程共10章

學習方式:詳細閱讀,並手動實現相關代碼

學習目標:此教程將教會大家 安裝Node、搭建伺服器、express、mysql、mongodb、編寫後台商務邏輯、編寫介面,最後完成一個完整的項目後台,預計共10天課程。

每日更新,建議跟學,按照本教程學習一定可以學好Nodejs,中途發現教程有誤的地方,請及時留言反饋

 

node.js安裝

 

通過官網下載

node.js 中文網 http://nodejs.cn/download/

windows系統我們一般選擇mis版本,根據自己的電腦系統和位元選擇

mac選擇.pkg版本

具體的版本號碼,一定要安裝偶數版本的,因為基數版為開發版本,偶數版為穩定版本

 

 

下載完成後的安裝包直接雙擊運行,連續下一步即可,建議選擇安裝到預設目錄,安裝到其他目錄可能需要重新設定環境變數(比較麻煩)

安裝過程中如下會有個同意的選項 ,勾上才可以下一步

 

安裝完成 -- 點擊完成之後,不會有任何介面提示,也沒有案頭表徵圖

驗證是否安裝完成的方法:

點擊電腦開始菜單,搜尋cmd,點擊開啟cmd命令列,如:

 

然後輸入  node -v   點擊enter鍵,出現如的版本提升,就表安裝完成了

 

 

node介紹

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。Node.js是一個基於Chrome JavaScript運行時建立的平台, 用於方便地搭建響應速度快、易於擴充的網路應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式裝置上運行資料密集型的即時應用。

其實node.js就是一個可以在伺服器端運行 javascript的環境而已  --  運行環境

現在已經有很多公司在使用node作為伺服器語言了,國外的:linkedin/paypal/twitter  國內的: 知乎的主站推送、網易(部分後台)、阿里(部分後台)

另外對於中小型項目的後台快速開發非常適合。

 

阻塞和非阻塞的解釋:這裡就得要涉及到 同步和非同步 的概念,

同步:我們js代碼是從上往下執行的,上一條代碼沒執行完成,不執行下一條代碼就是同步。

非同步:在上面代碼執行的時候,下面代碼也可以同時執行。

那麼阻塞就是同步的狀態表示,而非阻塞就是非同步狀態表示。

 

開始程式

 

helloWord樣本:

命令列輸入node  按enter鍵確定  就可以看到下面面的提示 " >_ "  表示已經進入node的運行狀態了,就可以輸入js代碼了(和以前網頁中寫js基本一致)

這裡我們輸入console.log( "helloWorld" )  確定 即可看到列印的helloWorld

但是途中第二條橫線出現的undefined是什嗎?這裡在node中,每一行代碼執行完,都會顯示一下傳回值,這裡沒有傳回值,所以有個undefined

另外大家試試下面代碼,定義 a=4,b=5,輸出相加後的結果

 

 

如果要結束Node的運行狀態,連續按兩次 ctrl+c  就可以退出,執行狀態如。

 

 

運行js檔案:

建議建立一個用於放js的檔案夾,取名nodeTest

然後在裡面建立一個js檔案, 取名 main.js,(注意檔案的編碼格式最好是utf-8,不然輸出中文會亂碼。)

 

 

編輯 main.js。在裡面寫入如代碼,輸出檔案夾名字和檔案名稱, __dirname 和 __filename 為node內部變數,表示檔案夾和檔案名稱。(注意:是連著兩個底線)

console.log("helloWorld"); //輸出一行文字console.log(__dirname); //輸出檔案夾名字console.log(__filename); //輸出檔案名

 

寫好的js檔案如何使用node 運行呢?

 

前面我們的命令列是從開始菜單開啟的,node的執行是在使用者管理員 檔案夾下,看

如果我們要在某個自訂的檔案夾執行node,那麼我們可以在 自己的檔案夾 按住shift並點擊右鍵,菜單中點擊“在此處開啟命令列”,即可定位到該目錄

 

 

此時開啟的命令列就定位到當前檔案夾了。

 此時直接輸入  node 需要執行的檔案名稱    確定 就執行了,可以看到列印的三行資料  helloWorld以及檔案夾名和檔案名稱

 

 

非同步實現

 

實現非同步有兩種方式: 1、回呼函數   2、定時器

回呼函數:監聽到某個事件活動後,再執行別的代碼,這種情況不影響後續代碼執行,屬於非同步,具體的例子以後再說。

定時器:setTimeout 和 setInterval

所有的非同步操縱,在js內部會優先執行同步代碼,對於非同步代碼會放到最後執行

試試下面的例子:在上一步的檔案夾中建立main2.js  寫入下面代碼, 然後運行, 我們會看到,for迴圈執行完成以後才列印出了setTimeout,就算out時間設定成0秒。

setTimeout(function(){    console.log(1000000000);},0);for(var i=0; i<1000; i++){    console.log(i);}

 

 

好,今天就講這麼多,明天將講解:模組化、fs檔案操作模組、http建立服務模組。

 

nodejs零基礎詳細教程1:安裝+基礎概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.