node js學習(一)

来源:http://www.cnblogs.com/0201zcr/archive/2016/01/03/5096472.html
-Advertisement-
Play Games

簡介+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 協議 下發佈

3、下載安裝(Window 64位版本)   64位下載地址:http://pan.baidu.com/s/1geaR3OZ 安裝步驟:       直接 雙擊node-v0.10.26-x86.msi文件預設安裝即可。 配置環境變數:   預設情況下,安裝後Path中會將我們剛剛安裝的node所在的路徑添加到Path中,所沒有則需要手動將其添加到Path環境變數中。 查看是否安裝成功:   在cmd 進入剛剛安裝的路徑,敲入如下的命令,查詢其版本
node --version 

   假如出現下麵的界面則證明安裝配置成功。

4、nodejs應用組成部分
  1. 引入 required 模塊:我們可以使用 require 指令來載入 Node.js 模塊。

  2. 創建伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。

  3. 接收請求與響應請求 伺服器很容易創建,客戶端可以使用瀏覽器或終端發送 HTTP 請求,伺服器接收請求後返迴響應數據。

5、hello world程式

步驟一、引入 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 伺服器監聽的埠號。
 6、node.js適用場景
  • I/O 綁定應用程式

  • 數據流應用

  • 數據密集型實時應用(DIRT)

  • JSON API的應用程式

  • 單頁面應用

7、不太適合使用node.js的場景

  使用Node.js的就是針對CPU密集型應用。

    致謝:感謝您的閱讀!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載JDK,Eclipse、Android SDK、ADT插件2.安裝JDK通過配置JDK的變數環境,我們可以方便地調用這些工具及它們的命令JDK包含的基本工具主要有:javac:Java編譯器,將源代碼轉成位元組碼。jar:打包工具,將相關的類文件打包成一個文件。javadoc:文檔生成器,從源...
  • 一放假就高產似母豬了。00.混亂的前端界Angular1.x確實是個學習成本很高的框架,剛開始實習那會兒,前端啥也不懂,工頭說用Angular,我們這群小弟也只能硬著頭皮學。在這之前,前端的東西大部分都用的jQuery,而Angular正好是和jQuery的思維是相反的,開發過程中遇到了不少坑。而A...
  • 在移動頁面的開發中,我們很難像PC端那樣很方便的調試,網上也有各種各樣的調試方式。但在工作中,我主要還是用chorme自帶的模擬器來模擬各種移動設備,但是用久了之後發現畢竟是模擬的,與真機調試還是會有不同的結果。 為了方便開發,UC推出Android平臺UC瀏覽器開發者版,主要支持以下功能:D...
  • [1]定義 [2]引入 [3] [4]註釋 [5]忽略空格 [6]代碼折行 [7]大小寫敏感 [8]保留字和關鍵字
  • 從2012年開始正式接觸jquery-easyui到如今已經整整3個年頭了。由於項目經常需要添加補充功能。工期緊,任務重。對於前端一直 薄弱的我而言,調整樣式往往會花費大量時間。而自從接觸過jquery-easyui,對它就一直愛不釋手。靈活輕便。可以快速實現功能,最煩心的樣式也 都由它來幫我解.....
  • 本篇主要介紹Web環境中屏幕、瀏覽器及頁面的高度、寬度信息。
  • 之前不知道這個參數的作用,上網找了前輩的博客,在此收錄到自己的博客,希望能幫到更多的朋友: test.htmlasy.jsfunction testAsync{ var temp; $.ajax({ async: false, type : "GET", url : 'tet.php', compl...
  • html相關
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...