簡單的說 Node.js 就是運行在服務端的 JavaScript。javascript
Node.js 是一個基於Chrome JavaScript 運行時創建的一個平臺。php
Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度很是快,性能很是好。html
1.編寫高性能網絡服務器的javascript工具包(用js開發服務端程序)java
2.單線程、異步、事件驅動node
單線程:01.php不支持多線程,可是php的服務apache支持多線程,啓動時會初始化150個線程供php使用。在線程池中,線程工做將內容提供到客戶端以後繼續回到線程池中等待被調用;02.node.js單線程,多個線程對庫操做,每一個線程對應一個塊內存;03.PHP高併發、大數據量如何處理?讓線程快速結束(線程優化、主鍵)數據庫
異步和事件驅動:異步訪問完數據庫以後就去進行其餘操做,訪問過程速度特別快,當下一步須要數據時會報錯,因此須要將下一步操做放到上面的函數中,做爲回調函數使用。node.js中有asyac方法讓程序順序執行apache
3.特色:快、耗內存多
服務器
4.node.js vs php
優勢:
01.性能高
02.開發效率高(優化的量少)
03.應用範圍廣(能夠開發桌面系統:electorn框架)網絡
缺點:
01.新、人少
02.中間件少
03.IDE不完善多線程
5.node請求靜態服務器
var http=require("http");//http是node中自帶的對象,利用require導入 http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":"text/html;charset=utf-8"}); console.log("訪問"); response.write("hello world"); response.end("你好,世界!"); }).listen(8000); console.log("Server running at http://127.0.0.1:8000/");
6.node模塊化開發和commonJS規範
01模塊引用
exports.add=function (num1,num2){
alert(num1+num2);
}//模塊對外提供的接口,假設存放在add.js中
var obj=require("./add.js");//模塊引用
// 賦值的意義在於,js中將僅能識別obj,由於這是已經定義的變量,並不能識別./add.js
obj.add(3,5);//正確的調用方法
02模塊定義
module對象:在每個模塊中,module對象表明該模塊自身。
export屬性:module對象的一個屬性,它向外提供接口。
03模塊標識 模塊標識指的是傳遞給require方法的參數,必須是符合小駝峯命名的字符串,或者以 . 或 .. 開頭的相對路徑,或者絕對路徑。