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

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

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

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

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

 

node.js安裝sql


 

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

 

經過官網下載express

node.js 中文網下載地址 http://nodejs.cn/download/windows

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盤

 

 

 

異步的實現


 

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

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

定時器: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建立服務模塊。

 

關注公衆號,博客更新便可收到推送

相關文章
相關標籤/搜索