前端開發,你要懂得Node.js的安裝和使用方法

前端開發,你要懂得Node.js的安裝和使用方法

文章來源:《Node.js區塊鏈開發》——朱志文

今天我們來介紹Node.js的安裝、使用方法,以幫你快速瞭解Node.js。

通過本篇的學習,你將對前端開發有一個完整的、全新的認知,還將學習到如何將那些第三方平臺的資源收為已用。

本文所提到的加密貨幣開發語言統計分析項目SatisielAnalysis of Crptocureney Development Languages, SACDL),

在線體驗地址為http//imfgithub.io/sacdl-project/

先看下 項目需求:

SACDL項目需要具備以下幾個功能。

1)能夠方便地讀取第三方網站(這裡是Github)的API,實現項目搜索功能。

2)能夠對讀取的數據進行集中處理,將其方便地轉化為我們所需要的信息。

3)能夠通過柱狀圖、矩陣圖、表格等圖表格式,將數據可視化。

4)方便擴展,為後續添加更多圖表樣式或其他網站API (比如交易市場的)做好準備。

技術選型:

無處不選擇。不僅大方向需要選擇,具體到每個開發包也要去仔細甄別,判斷它們安全嗎?好用嗎?性能高嗎?是否有更好的解決方案? ...

僅從上述需求來說,一個HTML文件再加一個Jascrie文件基本上就可以滿足需求了,一般來說是不需要第三方包的,Node.js更是大材小用。

但事實上,很多項目就算只是前端的項目,化如Bootstrap等,也都是基於Node.js的, 為什麼? 答案很簡單,因為Node.js提供了很多方便又實用的工具。

Node.js的優點具體如下:

組織方便:

JavaScript沒有模塊化組織代碼的能力。

在一個項目中,JavaScript通常會被分割到不同的文件中,如果採用以往的方式,處理起來將會非常頭終,現在利用Node.js的模塊進行管理,可以讓你輕鬆組織代碼。

資源廣泛:

Node.js的出現讓JavaScript第三方包像雨後春筍一樣遍地開花。如果需要什麼,只要一條命令,Node.js 就能幫您辦理了,這一點帶來了極大的便利。

全棧處理:

開發完後還有很多事情要做,比如,要對前端代碼JavaScript或CsS文件進行合併、壓縮、混淆,以及項目部署等。

體驗過Ruby on Rails一鍵部署功能的小夥伴,都會對其印象深刻。Node.js也很容易優能做到這點,而且更加自然、流暢。

總之,有了Node.js,我們就可以像開發後臺程序一樣組織前端代碼和項目了; 有了Node.js,就可以利用它背後強大的技術社區支持。

Node.js簡介:

有讀者說,第一次看到 Node.js,還以為就是一個JavaScript文件呢。

其實這很正常,很多前端的應用,比如大家討論最多的前端開發框架三劍客——Angular.js ,Backone.js 和Ember.js就是一個JavaScript文件。

那麼,Node.js 是什麼呢?

官方解釋是這樣的:

Node.js®is a JavaScrip runtime built on Chrome's V8 JavaScipt engine. Node.js uses anevent-driven, non-blocking I/O model that makes it lightweight and efficient.

翻譯如下:

Node.js®是一個搭建在Chrome V8上的JavaScript即時運行平臺,採用的是事件驅動和非阻塞I/O模型,既輕量又高效。

通俗的解釋就是,Node.js 是一一個可以讓您利用JavaSript語言開發應用的平臺,是構建運行在分佈式設備上的數據密集型實時程序的完美選擇。

請注意,這裡所說的並不只是Web應用,很多人認為Nodejis僅能開發以服務器為中心的Web應用,其實不然,它還可以開發PC端或移動端的應用。

當然,我們看到的大部分析是Web應用,它是PHP+Apache、JSP+Tomcat、 Ruby on Rails + Passenger (或Thin)+ Nginx等傳統Web開發的絕佳替代品。

如果你對此還沒有直觀的感受, 那麼我告訴你一一個信息,Node.js 的作者原本就是想開發一種取代 Apache ,Nginx、Tomeat等產品的傳統服務器軟件的,

結果發展成了今天的Node.js。

你用Node.js寫的每一個應用,既可以看作一個服務器軟件,也可以看作一個Web應用,而且它還如此簡單、高效。

什麼是數據密集型、實時的應用?

聊天室、即時通信等都是數據密集型、實時的應用。

當然,還包括交易市場(比特幣、股票、基金等),電子商務網站的即時交易等,甚至物聯網,比如電器設備的監控和遠程控制等也是此類應用。

筆者剛完成的一一個項目, 一家大型連鎖超市的電器設備綜合監控系統,就是使用Node.js開發的。

開發步驟:

下面所要介紹的開發過程可能會有點煩瑣,讀者需要耐心點,其實實踐步驟很簡單。

1 、搭建環境

對於初學者,建議先去Node.js官方網站瀏覽一遍。

筆者個人的開發環境具體如下,在此列出僅供參考。

操作系統是Ubuntu系統:您可以在現有的系統上,使用虛擬機軟件安裝Ubuntu系統。我們的全部示例和截圖都是在Ubuntu系統上完成的。

IDE工具:Sublime Text或Atom。

強烈建議參考Node.js的官網信息(Node.js 官方網站的地址請參見6.6節)。

可在Ubuntu上通過nvm安裝和管理Node,js。

下面是筆者個人的安裝習慣,摘錄其中的關鍵命令(各條命令都要在Ubuntu的命令行程序下運行)分別如下。

安裝Nvm

$ curl –o- https://raw .githubusercontent .com/creationix/nvm/v0.29.0/install.sh 1bash

用Nvm安裝Node,js

$ nvm install 5.1.0

$ nvm alias default 5.1.0

說明: 5.1.0是Nodejis的版本信息,寫作本章時,Nodejis 的最新穩定版是5.4.0,長期支持版是4.2.4。

安裝使用CNpm

使用淘寶npm鏡像(http://pme. taobao.org ),可以提高國內組件的下載數度:

$ npm install -9 cnpm—registry=https://registry.npm.taobao.org

查看版本信息

$ nvm -v

$node –v

$npm –v

筆者的版本信息如下:

nvm 0.29.0

node v5.1.0

npm v3.3.12

2、新建工程

在電腦上,新建一一個文件夾sacdl-project, 以此作為工程目錄,路徑如下:

/home/yourname/projects/sacd1 -project

我們通常會把前端代碼放在public目錄下,然後分別建立js、css, images等目錄,最後建立文件index .html和js/app.js,分別用於顯示頁面和編寫JavaScript代碼。

SACDL工程目錄結構中,特定的單詞擁有特定的意思,而且有固定的用途和功能。

如bower components 文件夾用於存放前端第三方組件,比如D3.js等,由bower自動生成; node_modules 文件夾用於存放後臺第三方模塊,由npm自動生成。

Dist 文件夾用於存放需要合併處理的目標文件,使用gulp維護。

test 位於測試文件夾下,存放測試代碼。public 文件夾用於存放我們自己編寫的代碼,其中各項文件具體如下。

js/searcher.js: 表示搜索框處理代碼。

js/utils.js: 表示數據處理代碼。

Js/bar.js: 表示文件是D3.js的柱狀圖代碼。

Js/treemap.js: 表示文件是矩陣圖的代碼。

Js/app.js: 表示用戶綜合調用,類似於把制器或路由。

3、前端組件

在命令行中,進人上述工程目錄,安裝自端管理工具bower:

$ cnpm install -g bower #也可以使用npm install★命令,二者一樣,只不過cnpm使用淘寶鏡像,在國內安裝cnpm下載會更快些

說明:

bower是一個npm包,專門用於管理Web前端(包含js、CSS、 images、fonts 等)依賴包的。

我們可以進行簡單類比,bower用於管理前端包,npm用於管理後臺庫(包),二者的用法十分相似。

初始化bower,代碼如下:

$ bower init

結果如下所示:

kuby@kuby-virtual-machine:~/projects/doing/sacdl-projects bower init

>name sacral-project

>description 加密貨幣開發語言統計分析,statistical Analysis of Cryptocurrency Development Languages

>main file index.js

>what types of modules does this package expose?

>keywords Cryptocurrency, bitcoin,d3js,nodejs

>authors imply

>license MIT

>homepage http://github.com/imfly/sacdl-project

>set currently installed components as dependencies? Yes

>set commonly ignored files to ignore list? Yes

>would you like to make this package as private which prevents from being accidentally published to the registry? Yes

{

name: `sacral-project`,

description:` 加密貨幣開發語言統計分析,statistical Analysis of Cryptocurrency Development Languages`,

main : `index.js`,

authors: [

顯示桌面

license: `MIT`,

keywords: [

`Cryptocurrency`

`bitcoin`

`d3js`

`nodejs`

],

homepage: `https://github.com/imfly/sacdl-project`,

moduleType: [],

private: true,

ignore: [

`**/.*`

`bower_components`

`test`

`tests`

]

}

Looks good ? ( Y/ n )

這樣就會生成一個bower.json文件,然後,代碼就可以被當作一個完整的前端組件來管理了。

通過bower安裝D3.js,代碼如下:

$ bower install d3 -- save

命令加上選項--save,將在bower.json文件裡寫入如下信息:

"dependencies":{

"d3": “~3.5.12",

}

這樣,在另一臺電腦上進行開發時,複製完代碼( git clone),就可以直接運行下面的命令,自動安裝所有要依賴的第三方組件了:

$ bower intall

說明:

D3.js可提供前端顯示的柱狀圖、餅狀圖等,是非常著名的數據可視化前端開發包。

國內的數據可視化軟件有百度的echats,還有一個higharts,這三者經常被拿來做比較。對這三者的簡單區分就是,D3.js像開發包,可以任意編程開發,但據說入門較難;其他兩個更像是模板,拿來就可以直接使用。

筆者選擇的是D3js,這樣選擇純屬個人喜好:一方面,筆者個人喜歡完全控制代碼;另一方面,在開發電子書版權保護和交易系統時會用到它。

前端交流群,私信發送【前端】獲取


分享到:


相關文章: