什麼是 Node.jsnode
Node.js就是運行在服務端的JavaScript。編程
Node.js是一個基於Chrome JavaScript運行時創建的一個平臺。設計模式
Node.js是一個事件驅動 I/O 服務端的JavaScript環境。基於Google v8引擎api
接下來咱們建立第一個應用 server.js併發
var http = require('http'); http.createServer(function (request, response) { // 發送 HTTP 頭部 // HTTP 狀態值: 200 : OK // 內容類型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // 發送響應數據 "Hello World" response.end('Hello World\n'); }).listen(3000); // 終端打印以下信息 console.log('Server running at http://127.0.0.1:3000/');
運行 node server.js 能夠啓動上服務異步
Node.js REPL (交互式解析器 --> Read-Eval-Print-Loop)異步編程
命令:node 進入 執行 打印 循環 ; ctrl+c 兩下退出函數
Node.js 的回調函數oop
Node.js的異步編程的直接體現就是回調性能
d2.txt
文件中 寫入 Rain_tdk
fs.js
var fs = require('fs') //阻塞代碼執行的寫法 var ds = fs.readFileSync('d2.txt') console.log(ds.toString()) console.log('阻塞代碼執行') //非阻塞代碼執行的寫法 fs.readFile('d2.txt',function (err,data) { if(err) console.log(err); console.log(data.toString()) }) console.log('不阻塞代碼執行')
執行結果: 非阻塞代碼的寫法能極大的提升Node.js 的性能(提醒:Node.js 中全部的api 都支持回調函數)。能夠處理大量的併發請求。
Node.js事件回調
Node.js是單進程單線程應用程序,可是能夠經過事件和回調支持併發,因此性能很高。
Node.js的每個api都是一部操做的,並做爲一個獨立的線程運行,使用異步函數調用,併發處理。
Node.js基本上全部的事件機制都是用設計模式中的觀察者模式實現的。
Node.js 單線程相似進入一個while(true)的事件循環,直到沒有事件觀察者退出,每一個異步事件都生成一個事件觀察者,若是有事件發生就調用該回調函數.