初探Node.js

1、Node.js是什麼?

Node.js是一個基於Chrome JavaScript運行時創建的平臺, 用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,很是適合在分佈式設備上運行數據密集型的實時應用。前端

1.1 誤解

因爲JavaScript的緣故,人們經常對Node.js產生很多的誤解,如:node

確定是前端搞出來的東西
又是一門新的語言?
是否是JavaScript框架?
會不會效率很慢?

固然,這些問題的答案都是否。既然它如此的強大,那麼接下來就讓咱們一塊兒來了解了解Node.js吧!web

1.2 Node.js是什麼?

是Javascript的運行環境,不是一門新的語言,也不是JavaScript的框架,採用Google的V8引擎。能夠簡單的理解爲服務器看不見的瀏覽器,提供特殊的API能夠讀取請求、操做數據庫等,已經脫離來前端體系,是後端體系的內容。數據庫

1.3 Node.js用什麼寫的?

Node.js平臺是用C/C++實現,運行的是JAVASCRIPT的腳本。它和JavaScript的關係就相似於JAVA和JAVA虛擬機。編程

1.4 爲何是JavaScript?

既然Node.js並不是由JavaScript語言寫出,爲何就必定要使用JavaScript不可呢?後端

這裏面就涉及到一個歷史的小故事——Node.js,原名Web.js。其設計做者非純粹意義上專業領域出生的碼農,而是一位數學家,他但願能經過實現事件驅動和異步IO來設計一個高性能的WEB服務器,在比較了衆多語言以後,選擇了JavaScript。瀏覽器

那麼JavaScript又是憑藉什麼功能打動了這位大牛呢?緩存

函數式編程。
異步編程。在前端編程中,異步編程是習覺得常的事情。
沒有歷史包袱。如:Lua的同步庫已經廣泛被用戶熟悉,改變用戶習慣難度係數偏高。
V8引擎。在運行JavaScript以前,相比其它的JavaScript的引擎轉換成字節碼或解釋執行,V8將其編譯成原生機器碼,而且使用瞭如內聯緩存等方法來提升性能。也所以,JavaScript程序在V8引擎下的運行速度媲美二進制程序。

1.5 Node.js

Node.js既是WEB服務器,又是高性能、可擴展的網絡應用框架,仍是單線程、事件驅動簡化網絡編程的。
目的:成爲一個快速構建、可伸縮的網絡應用平臺。服務器

1.6 Nodejs發展歷史

圖片描述

1.7 Node.js對於前端開發者意味着什麼?

(1)無需再花費力氣學一門新語言
(2)其餘語言能作的JS也能作,甚至更好網絡

2、 Node.js能夠作什麼?

2.1 WEB服務器

動態網頁
Ajax cgi
Web Socket。主要解決長連接問題。

2.2 桌面應用

基於Electron,node-webkit

Atom
VSCode

2.3 命令行工具

網絡爬蟲
本地開發構建工具,如GRUNT等

2.4 基於TCP/UDP等SOCKET應用

APP後臺服務
海量數據上報服務

2.5 Node.js優點

  • 高併發
  • 跨平臺
  • 先後端同構

3、Node.js在QQ空間的應用

3.1 Node.js在QQ空間應用的簡單介紹

2012年,接入Node.js。其團隊目前已獨立開發了服務器端等WEB標準組建TSW。現在,除部分古老的功能外,其他基本已轉入由Node.js實現。既然如此強大,那麼咱們就來看看TSW的應用成果吧。
圖片描述

3.2 TSW組建

圖片描述

3.3 TSW組建具體能夠實現哪些功能呢?

進程管理
監控體系——日誌系統、自動告警、惡意請求攔截等
問題定位——測試環境、用戶染色、定向抓包等
研發效率——先後端分離、代碼同構、頁面直出等
支持多種框架——Express、Koa、自研框架等
相關文章
相關標籤/搜索