Node.js簡介
nodejs並非一門新的語言,與Java,php開發語言的平臺也是不相同的,雖然他是JavaScript可是它並非JavaScript的框架。nodejs是讓JavaScript運行在服務器端的開發平臺。當一種事務在一個領域獨孤求敗的時候就會想着進入另一個領域,JavaScript已經在近幾年已經一統的前端的江湖,因此已經開始進入服務端的領域。Node.js是基於Chrome JavaScript運行時創建的一個平臺,使用C++編寫的,實際上它是對Google Chrome V8引擎進行了封裝,它主要用於建立快速的、可擴展的網絡應用。Node.js採用事件驅動和非阻塞I/O模型,使其變得輕微和高效,很是適合構建運行在分佈式設備的數據密集型實時應用。
\Node.js能作什麼
之前JavaScript並不涉及什麼邏輯代碼,可是node的出現使得JavaScript能作一些負責的邏輯代碼
JavaScript爲客戶端而生,node爲網絡而生
異步方式,適合併發大的應用
Node.js爲何會出現
之前是沒有人會想到用JavaScript做爲本身的web server 這是由於什麼呢?由於JavaScript是比較慢和亂php
1.hello world
打一個一個文本編輯器,在其中輸入html
console.log('Hello World');
2.Node.js命令行工具前端
node -v 版本 node -e eval scipt eval(「console.log('呵呵')」); 例:node -e "console.log('hello world')"; 直接執行 node 直接進入編譯模式 console.log("111") 第一行是輸出、第二行是返回值
3.創建HTTP服務器node
var http = require('http'); http.createServer(function(request,reponse){ //回送一個head頭部,返回值是200 reponse.writeHead(200,{'Content-Type':'text/html'}); //內容信息 reponse.write("thisd i strue"); //請求結束 reponse.end(); }).listen(5353);//監聽的是5353端口 console.log("end");
頁面上的顯示圖以下python
4.對代碼的調試
對應於上面的建立的服務器,若是每一改動都要手動的運行一次這樣確定是會很麻煩的,咱們能夠安裝一個插件能夠不用每次都從新運行一次服務器
npm install -supervisor -g
要把這個插件安裝到全局
而後經過 supervisor XX.js能夠監聽變化git
Node的事件驅動
1.Node事件的工做原理
爲某個對象綁定事件(經過on這個方法綁定),也能夠理解爲爲某個對象添加一個或多個觀察者(經過callback設定事件,即回調方法),來觀察這個對象的動做
這個對象在某個狀態或操做下,觸發事件,或者說激活觀察者行爲(經過emit激活某類事件或觀察者)
被激活的事件執行相應的處理(執行callback方法)
2.EventEmitter對象
EventEmitter是Node.js中事件的核心對象,全部的事件基本都是經過這個對象完成構建的!github
var eventEmit = require('events').EventEmitter; var event = new eventEmit(); //定義一個事件 event.on('newEvent',function () { console.log("this is zidingyi event"); }); //經過emit方法來觸發這個事件 event.emit("newEvent");