node搭建web伺服器

95後開發妹紙~發表於2020-11-18

在沒有使用express庫的情況下搭建web服務,也是很簡單的,當然有express庫搭個web服務更方便,後面會把使用express庫搭建伺服器的程式碼也補上哦~以及靜態頁面請求,動態請求(ajax 等 等陸續補上)
nodeJs提供了http內建模組,可以用來構建伺服器。
首先需要用到 node裡的 http模組
引入模組 let http = require(‘http’)
新建serve.js檔案:

let http = require('http');
let server = http.createServer((req,res)=>{//位址列有人訪問時觸發回撥
    if(req.url!=='/favicon.ico'){//為了不讀圖示請求,這個判斷不用管,當然可以不要
        console.log("請求地址",req.url);//請求地址
        //設定請求頭
        res.writeHead(200,{'content-Type':'text/html;charset=utf-8'})
        //可以不要,因為讀的html檔案有寫utf-8等
        console.log("有人訪問了")
        res.write('把資料讀到瀏覽器');//響應資料到--瀏覽器
        res.end()//響應結束(要告訴瀏覽響應都全結束了,不然瀏覽器就一直轉傻等著。)
    }
}); 
let port = 3000;
let hostname='localhost'
server.listen(port,hostname,()=>{
//啟動服務時響應  hostname域名可以省,預設localhost
    console.log('server is runring...')
})

注意 引入node內建模組時,不需要加路徑
這樣一個簡單的web伺服器就搭建好了,啟動下試試吧。。。
當你在瀏覽器輸入 localhost:3000時
在這裡插入圖片描述
在這裡插入圖片描述
可以看到輸入localhost:3000==localhost:3000/請求響應的是根 / (對,在預設情況下請求的就是根)
http.createServer((req,res)=>{}) 用來建立服務物件的,裡面的回撥函式有兩個引數,req與res:
req(respones)意味著,瀏覽器位址列輸入時地址發了個請求(可能還會帶一些引數資料),如果想去拿瀏覽器傳送請求帶進來的資料時,就要從req物件上取。
res 意味著請求成功了,並且作出了響應的動作(瀏覽器發過來請求,請求成功了,要回應一下)res就負責給瀏覽器響應後的內容。
req瀏覽器---->伺服器
res伺服器---->瀏覽器

以上就是簡單的把服務搭起來了,那如果想請求的是某個具體的html檔案呢,就要用到fs內建模組,系統模組,用來讀檔案,靜態頁面託管的。。。嗯~明天更新。。。。

相關文章