第三章 建議學(xué)習(xí)時(shí)間4小時(shí) 課程共10章
學(xué)習(xí)方式:詳細(xì)閱讀,并手動(dòng)實(shí)現(xiàn)相關(guān)代碼
學(xué)習(xí)目標(biāo):此教程將教會(huì)大家 安裝Node、搭建服務(wù)器、express、mysql、mongodb、編寫后臺(tái)業(yè)務(wù)邏輯、編寫接口,最后完成一個(gè)完整的項(xiàng)目后臺(tái),預(yù)計(jì)共10天課程。
npm包管理
什么是npm
npm是隨同NodeJS一起安裝的包管理工具,只要安裝了node,我們就可以通過命令行使用npm
啟動(dòng)命令行,運(yùn)行 npm -v 就可以看到npm的版本號(hào),根據(jù)安裝的node版本不同,內(nèi)部集成的npm頁不同,只要能顯示一個(gè)辦號(hào),就表示npm可用
npm作用:
允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。
允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。
允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用。
下載別人的第三方包到本地
使用 npm install 包名
這里我們?cè)?nodeTest文件運(yùn)行命令行, 運(yùn)行 npm install jquery 就可以自動(dòng)下載jq的最新版本。
下載成功后,就可以去磁盤文件夾查看,當(dāng)前目錄會(huì)多一個(gè) node_modules的文件夾,里面就有jquery的全部文件,如下圖的路徑,就可以找到j(luò)query.js了。
使用 npm uninstall 包名 卸載模塊
運(yùn)行 npm uninstall jquery 以后,在去查看文件,會(huì)發(fā)現(xiàn)該目錄下 node_modules 文件夾中的 jquery已經(jīng)被刪除了。
安裝別人的命令行程序到本地
這里我們下載 express-generator到本地
express-generator說明:它是一個(gè)node的自動(dòng)化創(chuàng)建項(xiàng)目工具,可以自動(dòng)創(chuàng)建一個(gè)項(xiàng)目的初始網(wǎng)站,包含一些基本頁面,可以通過瀏覽器訪問,以后我們會(huì)詳細(xì)介紹,這里大家先知道它的作用
命令行運(yùn)行 npm install -g express-generator
安裝完成后就把 express-generator安裝到了全局變量中 (說明:命令行中的 -g 表示該模塊安裝到全局,如果沒有-g就將模塊安裝到當(dāng)前目錄)
然后運(yùn)行 express 項(xiàng)目名 創(chuàng)建一個(gè)項(xiàng)目 (這里演示初始化了一個(gè)叫做 exTest的項(xiàng)目)
如何啟動(dòng)這個(gè)項(xiàng)目呢?
1、進(jìn)入項(xiàng)目目錄 cd exTest
2、安裝項(xiàng)目依賴模塊
由于創(chuàng)建的項(xiàng)目中有個(gè)自帶的pakage.js文件中已經(jīng)規(guī)定了需要引入的模塊,這里直接運(yùn)行 npm install安裝依賴
由于是從國外服務(wù)器下載,所以可能會(huì)等待一會(huì)兒才能安裝完成
出現(xiàn)一長(zhǎng)串的安裝提示,到下圖的狀態(tài)表示安裝完成
2、運(yùn)行項(xiàng)目 npm start
注:如果出現(xiàn)下圖的報(bào)錯(cuò)提示,表示3000端口被占用,可能有前面運(yùn)行的http命令行,把其他命令行都關(guān)閉再運(yùn)行這個(gè)。
運(yùn)行成功是這個(gè)狀態(tài)
然后通過瀏覽器輸入 http://localhost:3000/ 就可以訪問到項(xiàng)目首頁了,如下圖。
到這里我們就成功安裝了一個(gè)庫、一個(gè)項(xiàng)目構(gòu)建工具。大家先實(shí)現(xiàn)以下再往下看
GIT的使用
說明:git只是 代碼的版本管理工具,不是nodejs必學(xué)類容,大家自行選擇是否需要學(xué)習(xí)。
介紹:
為什么要使用版本控制:因?yàn)槲覀冊(cè)诰幋a過程中,會(huì)對(duì)軟件進(jìn)行各種修改,而且很可能需要在以后某個(gè)時(shí)候撤銷到以前某個(gè)時(shí)間編寫的樣子,我們?nèi)绻謩?dòng)復(fù)制備份,不僅工程量大,而且不便于管理,這就需要有一個(gè)版本控制器,讓我們可以自由的將以前寫的各個(gè)時(shí)間段的版本進(jìn)行保存
常見的版本控制有以下三種:
1、微軟的cvs -- 收費(fèi),切只能window使用
2、svn 版本控制良好,但需要一個(gè)非本地的服務(wù)器(不能本地離線提交版本)
3、git 新一代的版本控制,可以離線實(shí)現(xiàn)版本控制,而且可以結(jié)合免費(fèi)的 github網(wǎng)絡(luò)倉庫管理代碼,十分方便
下載安裝
官網(wǎng)下載:https://git-scm.com/downloads
下載完成后,安裝直接下一步、下一步即可,安裝完成后,要檢測(cè)是否安裝成功,在桌面空白位置,點(diǎn)擊鼠標(biāo)右鍵出現(xiàn)圖中紅框中內(nèi)容即安裝成功
注冊(cè)一個(gè)github賬號(hào)
注:英文網(wǎng)站,可以使用google進(jìn)行訪問,右上角有個(gè)翻譯按鈕可以將網(wǎng)站翻譯成中文,另外,注冊(cè)可以參考如下鏈接 :http://jingyan.baidu.com/article/455a9950abe0ada167277864.html
如何運(yùn)行g(shù)it:
建立一個(gè)測(cè)試文件夾,然后在自己的文件夾右鍵 點(diǎn)擊 git bash hare 我們這里的測(cè)試文件是d盤的 nodeTest\gitTest
首先需要配置一下你的郵箱和用戶名
下面代碼可以復(fù)制,在命令行中粘貼(注:ctrl+v在命令行不管用,需要右鍵 -- paste 才能粘貼進(jìn)去)
git config --global user.name "你的用戶名"
git config --global user.email "郵箱"
運(yùn)行 git config --list 可以看到所有的配置項(xiàng),下部找到 name 和email 看是否配置成功。
運(yùn)行 git init初始化,
然后就可以看到當(dāng)前目錄有一個(gè)隱藏的 .git文件夾,(如果隱藏文件看不到的,請(qǐng)自行百度如何查看隱藏文件),這個(gè)文件夾中是git的版本控制文件,千萬不要去動(dòng)。
這樣 gitTest文件夾就變成了git可以監(jiān)控的文件夾了,以后文件夾任意的修改,都會(huì)被監(jiān)控并記錄下來
我們先建一個(gè)a.txt文件(注意編碼格式最好是 utf-8)
在里面寫入一點(diǎn)兒內(nèi)容 保存
然后命令行 輸入 git status 可以查看到有記錄的對(duì) a.txt的修改
接下來我們先做幾個(gè)繼續(xù)往下的操作,然后在解釋這些操作是什么意思
我們運(yùn)行 git add . (注意后面有個(gè)空格點(diǎn))
然后運(yùn)行 git commit -m "a" 得到如下結(jié)果
然后修改一下 a.txt中的內(nèi)容 并保存,在 當(dāng)前文件夾 創(chuàng)建 b.txt
(說明:我們對(duì)文件修改/提交后 文件 左下角會(huì)有綠色的勾表示已經(jīng)提交?;蚣t色的嘆號(hào)表示被修改了沒提交)
再命令行 運(yùn)行 git status 可以看到如下結(jié)果
理解上面的過程:
這里需要先弄清楚 git的幾個(gè)監(jiān)聽區(qū)域:工作區(qū)、暫存區(qū)、版本庫
工作區(qū):你對(duì)當(dāng)前文件做的所有修改,都屬于工作區(qū) 使用 git status 就可以看到修改的文件。
暫存區(qū):通過上面 git add . 添加的狀態(tài) (后面的 點(diǎn) 表示對(duì)當(dāng)下所有的更改添加到暫存區(qū)),添加到暫存區(qū)的文件可以撤銷,也可以提交到版本庫
版本庫:最后的存放點(diǎn),在git內(nèi)部會(huì)對(duì)每個(gè)版本庫存一個(gè)狀態(tài)(功能類似創(chuàng)建了很多的備份,可以隨意恢復(fù)任何一個(gè)版本,當(dāng)然,git只是存了變化的地方,而非真的是備份)
那么,我們來看看上面運(yùn)行過的命令
git add . 表示添加當(dāng)前的所有修改到暫存區(qū) , 如果只提交某個(gè)文件的修改,可以給文件名 如 git add a.txt
git commit -m "a" 表示將暫存區(qū)的修改提交到版本庫,形成一個(gè)固定的版本保存下來, -m 后面的引號(hào)內(nèi)是 提交的注釋說明,可以寫“修改了xxxx”。
git status 顯示工作區(qū)和暫存區(qū)的所有修改狀態(tài)。工作區(qū)的是紅色的顯示,暫存區(qū)的是綠色的顯示(如下圖:只是一個(gè)示例說明,不跟著操作)
我們?cè)?運(yùn)行一下 添加和提交命令,將剛剛對(duì)a.txt b.txt的修改提交
查看版本庫 git log 下面的黃色打印部分,是每次修改的獨(dú)一無二的id (你的id和我的肯定也不一樣)
退回某個(gè)版本,
這里我們復(fù)制最后那個(gè)版本號(hào) 運(yùn)行 git reset --hart 版本id 來退回
如下圖,運(yùn)行完成就退回了,剛我們創(chuàng)建的 b.txt沒有了(退回到了創(chuàng)建以前)
當(dāng)然也可以退回到最上面那個(gè) id版本,運(yùn)行后又回到了b.txt已經(jīng)提交了的狀態(tài)
前面講了退回到某個(gè)版本,那么怎么撤銷工作區(qū)的修改呢?
使用命令 git checkout -- 文件名 ,可以將該文件的修改撤銷到上一次 git add 到暫存區(qū)的狀態(tài)。
比如我們先對(duì)a.txt作一下修改。添加了部分內(nèi)容
然后我運(yùn)行 git status 看效果,表示已經(jīng)修改了
然后運(yùn)行g(shù)it ceckout -- a.txt 撤銷 ,執(zhí)行完成,就可以看到上一步給a.txt添加的內(nèi)容被撤銷了
git checkout -- . 可以撤銷所有修改,建議不要使用,因?yàn)檫@個(gè)會(huì)把所有沒有 add的修改都撤銷,而且不可逆。
push項(xiàng)目到 github網(wǎng)站
前面已經(jīng)讓大家注冊(cè)了github的賬號(hào),如果沒有注冊(cè)的先注冊(cè)一個(gè)
然后登陸,登陸完成以后,點(diǎn)擊如下圖右上角的 新建 來新建一個(gè)倉庫
在新建界面中輸入倉庫名,確定即可
創(chuàng)建之后,會(huì)自動(dòng)跳轉(zhuǎn)進(jìn)入下面的界面,下圖中劃線的地方是 提交地址設(shè)置 和 提交的 命令行命令。先復(fù)制下來放著,后面會(huì)用。
電腦端操作了:我們這里使用ssh秘鑰鏈接,需要在電腦端生成秘鑰(當(dāng)然,也有其他方式鏈接,有興趣的可搜索“提交文件到 github”看看)
git 的命令行輸入:
ssh-keygen -t rsa -C 你的郵箱地址,到有需要輸入的地方,直接 enter 確定 ,enter多次,直到執(zhí)行完成
然后就可以在c盤的用戶 administrator文件夾下多了一個(gè) .ssh 的隱藏文件夾
點(diǎn)開文件夾可以看到兩個(gè)文件。這兩個(gè)文件是用戶 ssh安全安驗(yàn)證的秘鑰,.pub文件的公鑰(公用上傳)。id_rsa是私鑰(自己保留)
復(fù)制.pub文件內(nèi)的所有內(nèi)容。 然后按后續(xù)步驟添加到github賬號(hào)的 ssh設(shè)置中
回到github官網(wǎng)點(diǎn)擊有右上角頭像右邊箭頭,下拉框中點(diǎn)擊 設(shè)置
設(shè)置界面中點(diǎn)擊 ssh and gpg keys ,然后點(diǎn)擊 new ssh key 按鈕
點(diǎn)擊確定之后 需要再輸入一次 github的密碼,如下圖,輸入點(diǎn)擊確定
得到如下界面,這樣就將當(dāng)前電腦和 github 實(shí)現(xiàn)了 ssh的驗(yàn)證了
然后回到命令行 ,運(yùn)行前面 創(chuàng)建倉庫的時(shí)候 要求大家復(fù)制的 那兩條代碼 ,如下圖。(下圖紅框的地方 是你自己的倉庫地址)
第一次提交中途可能會(huì)遇到提示輸入 用戶名 和 密碼 在提示的地方輸入 github的 賬號(hào) 和 密碼 即可。
執(zhí)行完成之后,文件就上傳到 github了,按下面步驟查看是否上傳成功
如下圖點(diǎn)擊順序,就能找到你自己的倉庫。
找到倉庫后打開它
就可以看到 已上傳成功的文件了
右邊的綠色按鈕是下載操作。下載項(xiàng)目的地址如下圖
如何通過git下載別人的項(xiàng)目
上面布置我們已經(jīng)設(shè)置好了git
那么下面,我們新創(chuàng)建一個(gè)文件夾來下載別人的項(xiàng)目
這里我在 d 盤的 nodeTest 下 新建了一個(gè) gitProject 文件夾, 下載的別人的項(xiàng)目就會(huì)放到這個(gè)文件夾中
1、文件夾中空白處 右鍵 git bush hare
2、命令行輸入 git init 初始化
3、 git pull https://github.com/sutianbinde/jQ-win7.git 如需下載別的項(xiàng)目使用如下格式:git pull 項(xiàng)目git地址
運(yùn)行后,項(xiàng)目就被下載下來了。我們?nèi)ノ募A中就能看到項(xiàng)目了 ,那個(gè)Index.html就是項(xiàng)目的入口,使用瀏覽器打開即可查看
打開后可看到一個(gè)類似win7桌面系統(tǒng)的界面
學(xué)習(xí)需要持之以恒,希望跟學(xué)的同學(xué)跟上進(jìn)度哦~
好,今天就講這么多,明天將講解:node.js事件機(jī)制、node異步IO操作、路由。
http://www.cnblogs.com/chengduxiaoc/p/6971889.html