Node.js與ES632_Node.js入門

花溪月影發表於2024-06-24

一、什麼是Node.js

 簡單的說Node.js就是執行在服務端的JavaScript。

 Node.js是一個基於Chrome JavaScript執行時建立的一個平臺。

 Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快, 效能非常好。

二、Node.js安裝

 1、下載對應你係統的Node.js版本:

  https://nodejs.org/en/download/

   

 2、選擇安裝目錄進行安裝

  推薦下載LTS版本。

  完成以後,在控制檯輸入命令,會顯示當前node的版本號

   

三、快速入門

 1、建立測試工程:nodejs

    

 2、控制檯輸出

  建立demo1.js檔案

var a=1;
var b=2;
console.log(a+b);

  在idea的Terminal中輸入node demo1.js,檢視結果:

   

  說明nodejs是可以解析js的,因為nodejs是基於v8引擎來進行解析。

 3、使用函式

  建立demo2.js

var c= add(100,200);
console.log(c);
function add(a,b) {
    return a+b;
}

  Terminal中輸入node demo2.js,檢視結果:

   

 4、模組化程式設計

  每個檔案就是一個模組,有自己的作用域。在一個檔案裡面定義的變數、函式、類,都是私有的,對其他檔案不可見。

  建立demo3_1.js

   可以使用exports將js方法匯出

exports.add=function(a,b){
    return a+b;
} 

  每個模組內部,module變數代表當前模組。這個變數是一個物件,它的exports屬性(即module.exports)是對外的介面。載入某個模組,其實是載入該模組的module.exports屬性。

  建立demo3_2.js

   使用require引入對應的js模組,然後在引入之後可以使用對應的方法。

//引入模組demo3_1
var
demo = require('./demo3_1'); console.log(demo.add(400,600));

  Terminal中輸入命令:node demo3_2.js,檢視結果:

   

 5、建立web伺服器

 建立demo4.js

//http是內建模組
var http = require('http');
http.createServer(function (request, response) {
    // 傳送 HTTP 頭部
    // 引數1:響應狀態碼,200表示成功
    // 引數2:響應頭部資訊,內容型別: 純文字
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 傳送響應資料
    response.end('Hello World\n');
 }).listen(8888);
// 終端列印如下資訊
console.log('伺服器執行在http://127.0.0.1:8888');

  Terminal中輸入命令 node demo4.js ,結果如下:

   

  此時表示服務已經啟動,我們開啟瀏覽器,輸入網址,瀏覽器顯示

   

 6、理解服務端渲染

  我們建立demo5.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"
   for(var i=0;i<10;i++){
        response.write('Hello World\n');
    }
    response.end('');
}).listen(8888);
// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');

  Terminal中輸入命令node demo5.js ,在瀏覽器測試結果

   

  我們右鍵“檢視原始碼”

   

  這裡我們發現,並沒有我們寫的for迴圈語句,而是直接的10條Hello World ,這就說明這個迴圈是在服務端完成的,而非瀏覽器(客戶端)來完成。這與我們原來的JSP很是相似。實際中這些資料有可能由node直接讀取資料庫,或是透過ajax訪問其它網路資源獲取。

 7、接收引數

  目標:引入http和url模組建立web容器並使用url解析請求路徑中引數且輸出

  需求:http://127.0.0.1:8888?id=123&name=heima獲取到請求路徑中引數及值並輸出

  步驟:

    1. 建立web伺服器

    2. 引入url模組

    3. 利用url解析請求地址只能怪的引數和值並輸出

    4. 啟動測試

  建立demo6.js

//引入node.js內建http模組
var http = require("http");
//引入內建url模組
var url = require("url");

//建立並監聽web伺服器
http.createServer(function (request, response) {
    
    response.writeHead(200,{"Content-Type":"text/plain"});

    //解析請求地址
    //引數1:請求地址
    //引數2:true的話使用query解析引數到一個物件,預設false
    var params = url.parse(request.url,true).query;
    for(var key in params){
        response.write(key+"="+params[key]);
        response.write("\n");
    }
    //傳送響應資料
    response.end("");
}).listen(8888);
console.log("伺服器執行在http://127.0.0.1:8888");

  Terminal中輸入命令nodedemo6.js ,瀏覽器訪問http://127.0.0.1:8888/?id=123&name=heima,檢視結果:

   

   

相關文章