1. 程式人生 > >node.js中的http+https模組

node.js中的http+https模組

http和https:

http協議:http客服端發起請求,建立埠,http伺服器在埠監聽客戶端的請求,http伺服器向埠返回狀態和內容的一個過程。

https協議:是在http協議上增加了SSL/TLS握手加密傳輸,當訪問該協議時,需要SSL證書,其他的應用與http基本一致。

無論是http還是https請求方式都是:get、post、put(更新)

一、http的事件連線:

1、所有node.js中的模組在使用前都需將其引用到所需要的指令碼內部,然後在對其操作,http也是一樣的,

var  http  =  require('http');  
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    if(request.url!=="/favicon.ico"){  //清除第2此訪問  
        console.log('訪問');  
        response.write('hello,world');  
        response.end('hell,世界');//不寫則沒有http協議尾,但寫了會產生兩次訪問  
    }  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/'); 

2、http.createServer,是http監聽函式方法,裡面會呼叫一個回撥函式,會有兩個引數,request(請求)、response(響應)

3、listen(埠號):此處的埠號可以隨意

4、在建立伺服器時,需要將回復給一個end協議尾,如果不加response.end()方法,瀏覽器會一直在轉圈,感覺像是在一直載入的樣子,如果加入每次訪問此伺服器時會同時訪問兩次,所以就需要再加入response.end()方法前先進行判斷request.url!=="/favicon.ico",如果不等於才繼續走下去,注意:在express等架構中已經將其封裝好,無需再判斷,使用時自行判斷

二、指令碼間的引用(require、exports、module.exports)

1、test.js指令碼中的程式碼

var http = require('http');
var test1= require("./models/test1.js");
var test2= require('./models/test2');
http.createServer(function (request, response) {
  response.writeHead(200, { 'Content-Type': 'text/html;        charset=utf-8' });
  if (request.url !== "/favicon.ico") {        //清除第2此訪問
    //-------用字串呼叫對應的函式---
    funname = 'fun3';
    test1[funname](response);
    test1['fun2'](response);

    //引入test2中的返回函式
    test2=new Teacher(1,'李四',30);
    test2.enter();
    test2.teach(res);
    res.end(''); 
    response.end('');
  }
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');

2、在test指令碼的同級建一個models目錄裡面建一個test1.js指令碼,程式碼如下

//  只支援一個函式  
function Teacher(id,name,age){
    User.apply(this,[id,name,age]);
    this.teach=function(res){
        res.write(this.name+"老師講課");
    }
}
module.exports = Teacher;
 
  
//使用物件的格式輸出多個函式      
module.exports={      
    fun2:function(res){      
        res.write('fun二');
    },      
    fun3:function(res){      
        res.write('fun三');
    }      
}   

3、在test指令碼的同級建一個models目錄裡面建一個test2.js指令碼,程式碼如下

var  User  =  require('./User');
function test2(id,name,age){
//應用apply繼承User所有的方法
    User.apply(this,[id,name,age]);
    this.teach=function(res){
        res.write(this.name+"老師講課");
    }
}
module.exports = test2;

4、在test指令碼的同級建一個models目錄裡面建一個Userjs指令碼,程式碼如下

function  User(id,name,age){
    this.id=id;
    this.name=name;
    this.age=age;
    this.enter=function(){
        console.log(name+"進入圖書館");
    }
}
module.exports=User;

5、執行node test.js (如果是用vscode編譯器可直接ctrl+~快捷鍵啟動控制檯、gitbashhere啟動當前目錄下的test指令碼、或者在當前指令碼資料夾中按住shift+滑鼠右鍵也可啟動Powershell視窗進行啟動伺服器),開啟瀏覽器輸入http://localhost:8000/進行訪問此伺服器,網頁上輸出 fun二 fun三 李四老師講課