第一章 建議學習時間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建立服務模塊。
關注公衆號,博客更新便可收到推送