官網上(http://www.nodejs.org)給Node下的定義是:「一個搭建在Chrome JavaScript運行時
上的平臺,用於構建高速、可伸縮的網絡程序。Node.js採用的事件驅動、非阻塞I/O模型,使它
既輕量又高效,併成爲構建運行在分佈式設備上的數據密集型實時程序的完美選擇。」node
Node爲服務端JavaScript提供了一個事件驅動的、異步的平臺。它把JavaScript帶到服務端中
的方式跟瀏覽器把JavaScript帶到客戶端的方式幾乎如出一轍。它們都是事件驅動(用事件輪詢)和非阻塞的I/O處理(用異步I/O)。瀏覽器
在Node中,I/O幾乎老是在主事件輪詢以外進行,使得服務器能夠一直處於高效而且隨時能
夠作出響應的狀態,就像NGINX同樣。這樣進程就更加不會受I/O限制,由於I/O延遲不會拖垮服
務器,或者像在阻塞方式下那樣佔用不少資源。所以一些在服務器上曾經是重量級的操做,在
Node服務器上仍然能夠是輕量級的。服務器
node常被用來構建服務器,在node中服務器和程序是同樣的。下面是一個簡單的HTTP服務器實現:(http.js文件)網絡
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });\\監聽端口,被訪問的時候作一些事情。
運行文件......沒錯!就這麼實現了!異步