Node簡介
根據官方文檔能夠知道,node就是一個給予谷歌v8引擎的一個javascript的運行時,能夠理解爲運行js的一個虛擬機。他使用的是一個 事件驅動,非阻塞I/O模型 ,他是將js的運行環境搬到了服務器端,和客戶端沒有一點關係。是一個純服務端的東西,node只是爲js提供了一個平臺。node裏面其實還分了兩塊,一是封裝了v8引擎,目的是爲了執行es(如定義變量,定義函數等),另一個提供了大量的工具庫,是幫助node實現各類功能的,提供了一些之前js的環境辦不到的事情,好比文件操做,網絡操做,操做系統的操做。
既然node是一個平臺(所謂的平臺就是用來運行特定語言的),也就意味着node是用來運行語言的,那麼java也是語言,node能運行java嗎?據nodejs創始人Ryan Dahl回憶,他最初是選擇了Ruby這門語言,可是Ruby這門語言的虛擬機效率不怎麼樣最終放棄了,按照這種思路,貌似node將java的虛擬機集成進來應該能夠運行java,但node做者最終選擇了javascript。這樣js就實現了在服務端運行的可能,js運行在node平臺上(分爲v8部分,用來執行es,和大量的工具庫組件(API)稱之爲libuv,提供了之前js的環境辦不到的事,如文件操做,網絡操做等等)。
知道了什麼是node,應該還要清楚node在web中有什麼用途?
(1)node能夠接受客戶端用戶的全部請求,而且可以快速的給出響應,所以node能夠用來作網站。
(2)node能夠做爲一箇中間層來來分發調用數據接口,好比有一個網站數據是有java提供的,咱們可讓node做爲一箇中間曾,來接受用戶的請求,而後經過node來調用java數據接口,獲取到數據後直接在node層面作html的瓶裝,而後將渲染好的頁面直接給用戶。爲何要這樣作,直接請求java接口不行嗎,這是由於node被稱之爲高性能的web服務器,在併發和抗壓方面都比傳統的平臺要好不少,所以這樣一包裝能夠極大的減輕服務器的開發。
經過上面的兩點,能夠總結出,node在web中要麼從前端頁面到後端服務全包了,一個是隻作其中的一點。
一言以蔽之,node就是一個javascript的運行環境(平臺),他不是一門語言,也不是javascript的框架。能夠用來開發服務端應用程序,web系統。其特色是體積小,快速,高性能。javascript
下載地址html
https://nodejs.org/en/download/
NPM簡介
簡單的說,npm就是JavaScript的包管理工具。相似Java語法中的maven,gradle,python中的pip。前端
npm是和Nodejs一塊兒並存的,只要安裝了Nodejs,npm也安裝好了,安裝好Nodejs以後。打開終端,執行以下命令,檢查是否安裝成功java
C:\Users\fuyong>node -v v6.10.3 C:\Users\fuyong>npm -v 3.10.10
npm初始化
在去下載包以前,首先先讓當前項目的包進行初始化操做,進入項目目錄,執行命令:node
npm init
運行這個命令後,它會詢問一些關於包的基本信息,根據實際狀況回答便可。若是不喜歡這種方式,可使用npm init --yes
命令直接使用默認的配置來建立package.json
文件,最後根據須要修改建立好的package.json
文件便可。python
{ "name": "01-studynpm", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
主要字段的含義以下:jquery
-
name: 模塊名, 模塊的名稱有以下要求:webpack
- 所有小寫
- 只能是一個詞語,沒有空格
- 容許使用破折號和下劃線做爲單詞分隔符
-
version: 模塊版本信息web
-
description:關於模塊功能的簡單描述,若是這個字段爲空的話,默認會從當前目錄的
READMD.md
或README
文件讀取第一行內容做爲它的默認值。npm -
main: 模塊被引入後,首先加載的文件,默認爲
index.js
。 -
scripts: 定義一些經常使用命令入口
關於最後一個英文的意思,咱們能夠證實,當我執行npm init以後,會自動的生成package.json的文件。
安裝模塊
使用npm install
會讀取package.json
文件來安裝模塊。安裝的模塊分爲兩類dependencies
和devDependencies
,分別對應生產環境須要的安裝包和開發環境須要的安裝包。
一樣在安裝模塊的時候,能夠經過指定參數來修改package.json文件,以jquery和webpack作例子
npm install jquery --save npm install webpack --save-dev
執行以上命令,即可以安裝對應的包到執行命令的當前目錄,並建立一個node_modules
的文件夾,而後把須要安裝的安裝包下載到裏面。
打開package.json文件會發現:
如需下載不一樣版本的模塊
npm install jquery@2.0.1 --save
如需卸載模塊
npm uninstall jquery --save
使用cnpm(淘寶鏡像)
使用npm下載依賴時,因爲是從國外的網站上下載內容,因此可能常常會出現不穩定的狀況,因此須要下載cnpm代替npm,cnpm是國內淘寶的作的,在國內使用穩定。
1.下載cnpm
使用npm下載依賴時,因爲是從國外的網站上下載內容,因此可能常常會出現不穩定的狀況,因此須要下載cnpm代替npm,cnpm是國內淘寶的作的,在國內使用穩定。
使用npm下載依賴時,因爲是從國外的網站上下載內容,因此可能常常會出現不穩定的狀況,因此須要下載cnpm代替npm,cnpm是國內淘寶的作的,在國內使用穩定。
2.使用cpm
cnpm install jquery --save