簡介+hello world程式
1、簡介
JavaScript是一種運行在瀏覽器的腳本,它簡單,輕巧,易於編輯,這種腳本通常用於瀏覽器的前端編程,但是一位開發者Ryan有一天發現這種前端式的腳本語言可以運行在伺服器上的時候,一場席卷全球的風暴就開始了。
Node.js是一個基於Chrome JavaScript運行時建立的平臺, 用於方便地搭建響應速度快、易於擴展的網路應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分散式設備上運行的數據密集型的實時應用。 Node是一個Javascript運行環境(runtime)。實際上它是對Google V8引擎進行了封裝。V8引 擎執行Javascript的速度非常快,性能非常好。Node對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下運行得更好。 2、node.js優點-
Node.js庫的非同步和事件驅動的API全部都是非同步就是非阻塞。它主要是指基於Node.js的伺服器不會等待API返回的數據。伺服器移動到下一個API調用,Node.js發生的事件通知機制後有助於伺服器獲得從之前的API調用的響應。
-
非常快的內置谷歌Chrome的V8 JavaScript引擎,Node.js庫代碼執行是非常快的。
-
單線程但高度可擴展 - Node.js使用具有迴圈事件單線程模型。事件機制有助於伺服器在一個非阻塞的方式響應並使得伺服器高度可擴展,而不是創建線程限制來處理請求的傳統伺服器。Node.js使用單線程的程式,但可以提供比傳統的伺服器(比如Apache HTTP伺服器)的請求服務數量要大得多。
-
沒有緩衝 - Node.js的應用從來不使用緩衝任何數據。這些應用只是輸出數據在塊中。
-
許可證協議 - Node.js 在 MIT 協議 下發佈
node --version
假如出現下麵的界面則證明安裝配置成功。
4、nodejs應用組成部分-
引入 required 模塊:我們可以使用 require 指令來載入 Node.js 模塊。
-
創建伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。
-
接收請求與響應請求 伺服器很容易創建,客戶端可以使用瀏覽器或終端發送 HTTP 請求,伺服器接收請求後返迴響應數據。
步驟一、引入 required 模塊
我們使用 require 指令來載入 http 模塊,並將實例化的 HTTP 賦值給變數 http,實例如下:
var http = require("http");
步驟二、創建伺服器
接下來我們使用 http.createServer() 方法創建伺服器,並使用 listen 方法綁定 8888 埠。 函數通過 request, response 參數來接收和響應數據。
實例如下,在你項目的根目錄下創建一個叫 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(8888); // 終端列印如下信息 console.log('Server running at http://127.0.0.1:8888/');
以上代碼我們完成了一個可以工作的 HTTP 伺服器。
使用 node 命令執行以上的代碼:
node server.js
命令行輸出如下信息,則說明伺服器應用已經啟動(上面列印的一句話)
Server running at http://127.0.0.1:8888/
在瀏覽器中訪問http://127.0.0.1:8888/ ,你就會看到“Hello World”頁面
分析Node.js 的 HTTP 伺服器:
- 第一行請求(require)Node.js 自帶的 http 模塊,並且把它賦值給 http 變數。
- 接下來我們調用 http 模塊提供的函數: createServer 。這個函數會返回 一個對象,這個對象有一個叫做 listen 的方法,這個方法有一個數值參數, 指定這個 HTTP 伺服器監聽的埠號。
-
I/O 綁定應用程式
-
數據流應用
-
數據密集型實時應用(DIRT)
-
JSON API的應用程式
-
單頁面應用
7、不太適合使用node.js的場景
使用Node.js的就是針對CPU密集型應用。
致謝:感謝您的閱讀!