NodeJs的簡介及安裝

首先 分享一下NodeJs的應用場景吧;


Web聊天室(IM):Express + Socket.io
socket.io一個是基於Nodejs架構體系的,支持websocket的協議用於時時通訊的一個軟件包。socket.io 給跨瀏覽器構建實時應用提供了完整的封裝,socket.io徹底由javascript實現。實現羣聊或者私聊的功能!
javascript

 Web爬蟲:Cheerio/Request
cheerio 是一個爲服務器特別定製的,快速、靈活、封裝jQuery核心功能工具包。Cheerio包括了 jQuery核心的子集,從jQuery庫中去除了全部DOM不一致性和瀏覽器不兼容的部分,揭示了它真正優雅的API。Cheerio工做在一個很是簡 單,一致的DOM模型之上,解析、操做、渲染都變得難以置信的高效。基礎的端到端的基準測試顯示Cheerio大約比JSDOM快八倍(8x)。 Cheerio封裝了@FB55兼容的htmlparser,幾乎可以解析任何的 HTML 和 XML document。
php

 Web博客:Hexo
Hexo 是一個簡單地、輕量地、基於Node的一個靜態博客框架。經過Hexo咱們能夠快速建立本身的博客,僅須要幾條命令就能夠完成。
發佈時,Hexo能夠部署在本身的Node服務器上面,也能夠部署github上面。對於我的用戶來講,部署在github上好處頗多,不只能夠省 去服務器的成本,還能夠減小各類系統運維的麻煩事(系統管理、備份、網絡)。因此,基於github的我的站點,正在開始流行起來….
html

Web論壇: nodeclub
Node Club 是用 Node.js 和 MongoDB 開發的新型社區軟件,界面優雅,功能豐富,小巧迅速, 已在Node.js 中文技術社區 CNode 獲得應用,但你徹底能夠用它搭建本身的社區。
前端

 Web幻燈片:Cleaver
Cleaver 能夠生成基於Markdown的演示文稿。若是你已經有了一個Markdown的文檔,30秒就能夠製做成幻燈片。Cleaver是爲Hacker準備的工具。
java

 前端包管理平臺: bower.js
Bower 是 twitter 推出的一款包管理工具,基於nodejs的模塊化思想,把功能分散到各個模塊中,讓模塊和模塊之間存在聯繫,經過 Bower 來管理模塊間的這種聯繫。
node

 OAuth認證:Passport
Passport項 目是一個基於Nodejs的認證中間件。Passport目的只是爲了「登錄認證」,所以,代碼乾淨,易維護,能夠方便地集成到其餘的應用中。Web應用 通常有2種登錄認證的形式:用戶名和密碼認證登錄,OAuth認證登錄。Passport能夠根據應用程序的特色,配置不一樣的認證機制。本文將介紹,用戶 名和密碼的認證登錄。
python

定時任務工具: later
Later 是一個基於Nodejs的工具庫,用最簡單的方式執行定時任務。Later能夠運行在Node和瀏覽器中。
mysql

 瀏覽器環境工具: browserify
Browserify 的出現可讓Nodejs模塊跑在瀏覽器中,用require()的語法格式來組織前端的代碼,加載npm的模塊。在瀏覽器中,調用browserify編譯後的代碼,一樣寫在  複製連接
jquery

瞭解了這麼多的應用的場景,那我們先來介紹一下  什麼是NodeJs;
linux

1、NodeJS簡介

      首先咱們來思考一個問題:咱們都知道幾乎全部現代主流瀏覽器都全面支持了ECMAScript 5.1版標準,而JavaScript的標準是ECMAScript那麼咱們就容易認爲JavaScript

是一種瀏覽器端的解釋型編程腳本。那麼脫離了瀏覽器,JavaScript還可以解釋運行嗎? 答案是確定的,也就是說脫離了瀏覽器,在特定環境下JavaScript仍是能運行的。

JavaScript向來以Web網頁的腳本語言而著稱,但如今也能夠用在許多非瀏覽器環境,例如node.js或者Apache CouchDB。本文就是基於NodeJS來進行探討。

    NodeJS是什麼?

      根據百度百科解釋,Node.js是一套用來編寫高性能網絡服務器的JavaScript工具包。Node.js是一個能夠快速構建網絡服務及應用的平臺,該平臺的構建是基於Chrome's

 JavaScript runtime,也就是說,實際上它是對GoogleV8引擎(應用於Google Chrome瀏覽器)進行了封裝。V8引 擎執行Javascript的速度很是快,性能很是好。

      NodeJS並非提供簡單的封裝,而後提供API調用,若是是這樣的話那麼它就不會有如今這麼火了。Node對一些特殊用例進行了優化,提供了替代的API,使得V8在非

覽器環境下運行得更好。例如,在服務器環境中,處理二進制數據一般是必不可少的,但Javascript對此支持不足,所以,V8.Node增長了Buffer類,方便而且高效地 處理二進

制數據。所以,Node不只僅簡單的使用了V8,還對其進行了優化,使其在各環境下更加給力。

    Node.js的優勢

      一、基於V8虛擬機,可構建高性能服務器

       V8引擎自己使用了一些最新的編譯技術。這使得用Javascript這類腳本語言編寫出來的代碼與用C這類高級語言寫出來的代碼性能相差無幾,卻節省了開發成本。對性能的

苛求是Node的一個關鍵因素。 Javascript是一個事件驅動語言,Node利用了這個優勢,編寫出可擴展性高的服務器。Node採用了一個稱爲「事件循環(event loop)」的架構,使

得編寫可擴展性高的服務器變得既容易又安全。提升服務器性能的技巧有多種多樣。Node選擇了一種既能提升性能,又能減低開發複雜度的架構。這是一個很是重要的特性。

併發編程一般很複雜且佈滿地雷。Node繞過了這些,但仍提供很好的性能。

      二、單線程

      Node.js能夠在不新增額外線程的狀況下,依然能夠對任務進行並行處理 —— Node.js是單線程的。它經過事件輪詢(event loop)來實現並行操做,對此,咱們應該要充

分利用這一點 —— 儘量的避免阻塞操做,取而代之,多使用非阻塞操做。

      三、可利用Javascript進行後臺開發

      雖然讓Javascript運行於服務器端不是Node的獨特之處,但倒是其一強大功能。不得不認可,瀏覽器環境限制了咱們選擇編程語言的自由。任何服務器與日益複雜的瀏覽器

客戶端應用程序間共享代碼的願望只能經過Javascript來實現。雖然還存在其餘一些支持Javascript在服務器端 運行的平臺,但由於上述特性,Node發展迅猛,成爲事實上的平臺。

      四、非阻塞IO

      Node採用一系列「非阻塞」庫來支持事件循環的方式。本質上就是爲文件系統、數據庫之類的資源提供接口。向文件系統發送一個請求時,無需等待硬盤(尋址並檢索文

件),硬盤準備好的時候非阻塞接口會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤爲是對於熟悉onmouseover、onclick等DOM事件的用戶,更

有一種似曾相識的感受。


Node.js 的安裝.

這裏我只簡單介紹一下在Linux的環境下的安裝.

一.Debian 系列的安裝方法.

①使用源碼安裝

首先須要有Python,g++,make,checkinstall ,fakeroot 等工具.


sudo apt-get install python g++ make checkinstall fakeroot

src=$(mktemp -d) && cd $src   //注意這裏是創建一個臨時的文件夾,用於下載咱們的nodejs的源碼包,而後再進行安裝.

wget  http://nodejs.org/dist/node-lastest.tar.gz   //使用wget 獲取安裝包.

tar xzvf node-lastest.tar.gz && cd node-v*  //解壓縮而且進入壓縮以後的文件夾.

./configure //配置安裝參數

make && make install  //編譯並安裝.

安裝npm的包管理工具.

curl https://www.npmjs.org/install.sh | sudo sh

②命令安裝

sudo apt-get install nodejs

安裝npm包管理工具.

sudo apt-get install npm

最後想說,使用的時候,咱們直接在命令行裏面輸入node

就能夠進入node的命令界面.

這個終端很是的好用.能夠用來幫助咱們測試javascript的語法特性和更好的理解javascript,可是它不支持咱們瀏覽器的BOM, DOM 對象.

可是支持javascript的內置對象. 

相關文章
相關標籤/搜索