node.js零基礎詳細教程(1):安裝+基礎概念


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

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

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

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

 

node.js安裝


 

百度雲盤有本教程需要的軟件  鏈接:http://pan.baidu.com/s/1kVPxBJT 密碼:uziu

 

通過官網下載

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以及文件夾名和文件名

 

補充:目錄切換命令

cd ..  回上一級目錄 

這樣就定位到了 nodeTest的上一級 ,此時是D盤根目錄

如果要進入子目錄, 使用  cd 文件夾名

這樣就重新 進入了nodeTest ,如果再有子目錄,繼續 cd 子目錄名就能進入了

 

盤之間的切換   輸入 盤符:

這樣就進入了 E盤  ,再輸入 D:  又可以回到 D盤

 

 

 

異步的實現


 

實現異步有兩種方式: 1、回調函數   2、定時器

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

定時器:setTimeout 和 setInterval

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

試試下面的例子:在上一步的文件夾中創建main2.js  寫入下面代碼, 然后運行, 我們會看到,for循環執行完成以后才打印出setTimeout內部的100000000,就算out時間設置成0秒。

setTimeout(function(){
    console.log(1000000000);
},0);

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

 

 

好,今天就講這么多,明天將講解:模塊化、fs文件操作模塊、http創建服務模塊。

 

關注公眾號,博客更新即可收到推送

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM