Node.js是一個可以在服務器端運行的JavaScript的開放源代碼 跨平臺的JavaScript運行環境.Node.js採用Google開發的V8運行代碼,使用時間驅動,非阻塞和異步輸入輸出模型等技術來提升性能,能夠優化應用程序的傳輸量和規模.php
Node.js大部分基本模塊都是用JavaScript語言編寫的.在Node.js以前,JavaScript一般做爲客戶端程序設計語言使用,以JavaScript寫出的程序在用戶的瀏覽器上運行.Node.js的出現使JavaScript也能用於服務器端變成.其有一系列內置模塊,使得程序能夠脫離Apache HTTP Server或IIS,做爲獨立的服務器運行.前端
Node.js最大的優點是藉助JavaScript天生的事件驅動機制和V8高性能引擎,使編寫高性能Web服務垂手可得.node
其次,JavaScript語言自己是完善的函數式語言,在前端開發時,開發人員每每很隨意的在使用JavaScript,可是在Node.js環境下,經過模塊化的JavaScript,加上函數式編程,而且無需考慮瀏覽器兼容性問題,直接使用ES6標準,徹底能夠知足工程商的需求.算法
Node.js容許經過JavaScript和一系列模塊來編寫服務器端應用和網絡相關的應用。核心模塊包括文件系統I/O、網絡(HTTP、TCP、UDP、DNS、TLS/SSL等)、二進制數據流、加密算法、數據流等等。Node模塊的API形式簡單,下降了編程的複雜度.
npm
使用框架能夠加速開發。經常使用的框架有Express.js、Socket.IO和Connect等。Node.js的程序能夠在Microsoft Windows、Linux、Unix、Mac OS X等服務器上運行。Node.js也可使用CoffeeScript(一種旨在簡化JavaScript的替代語言,其代碼可按照必定規則轉化爲合法的JavaScript代碼)、TypeScript(微軟開發的強化了數據類型的JavaScript變體)、Dart語言,以及其餘可以編譯成JavaScript的語言編程。
編程
Node.js主要用於編寫像Web服務器同樣的網絡應用,這和PHP和Python是相似的。可是Node.js與其餘語言最大的不一樣之處在於,PHP等語言是阻塞的(只有前一條命令執行完畢纔會執行後面的命令),而Node.js是非阻塞的(多條命令能夠同時被運行,經過回調函數得知命令已結束運行)。
後端
Node.js是事件驅動的。開發者能夠在不使用線程的狀況下開發出一個可以承載高併發的服務器。其餘服務器端語言難以開發高併發應用,並且即便開發出來,性能也不盡人意。Node.js正是在這個前提下被創造出來。Node.js把JavaScript的易學易用和Unix網絡編程的強大結合到了一塊兒。瀏覽器
Node.js使用Google V8 JavaScript 引擎,由於:安全
Node.js已經有數十萬模塊,它們能夠經過一個名爲npm的管理器免費下載。服務器
因爲Node.js平臺是在服務器端運行的JavaScript.因此必須提供其運行的Node環境(相似於JVM).
從Node.js官網或者Node中文網下載下載對應平臺的安裝程序,網速慢請移步中文網.
安裝過程就是一路Next。在安裝的過程當中,爲避免沒必要要的麻煩,安裝目錄建議不要包含中文。安裝完成以後,在cmd命令行中輸入node -v命令來查看Node.js的版本:輸入npm -v來查看npm管理器版本。出現版本信息,安裝成功.
npm是什麼?npm實際上是Node.js的包管理工具(package manager)。爲何咱們須要一個包管理工具呢?由於咱們在Node.js上開發時,會用到不少別人寫的JavaScript代碼。若是咱們要使用別人寫的某個包,每次都根據名稱搜索一下官方網站,下載代碼,解壓,再使用,很是繁瑣。因而一個集中管理的工具應運而生:你們都把本身開發的模塊打包後放到npm官網上,若是要使用,直接經過npm安裝就能夠直接用,不用管代碼存在哪,應該從哪下載。
更重要的是,若是咱們要使用模塊A,而模塊A又依賴於模塊B,模塊B又依賴於模塊X和模塊Y,npm能夠根據依賴關係,把全部依賴的包都下載下來並管理起來。不然,靠咱們本身手動管理,確定既麻煩又容易出錯。(相似於Maven)
繼續在命令提示符輸入node
,此刻你將進入Node.js的交互環境。在交互環境下,你能夠輸入任意JavaScript語句,例如1+2
,回車後將獲得輸出結果。要退出Node.js環境,連按兩次Ctrl+C。
以上控制檯命令能正常運行,說明機器已經安裝好了Node.js環境.