從頭編寫乙個 HTTP 靜態資源伺服器

2021-10-05 04:50:22 字數 1675 閱讀 2083

首先需要的node 模組有 http,url,path,fs 模組。

// 提供乙個http 服務

// 用於處理 url 字串和 url物件

var url =

require

('url');

// 用於處理檔案路徑

var path =

require

('path');

// fs 模組 用於讀取檔案的

var fs =

require

('fs'

);

然後要用 http模組來建立乙個http模組。

)當乙個http 請求過來的時候,需要解析request.url 字段,利用url.parse()將request.url 字串轉義成url 物件。

var pathname = url.

parse

(request.url)

.pathname;

這裡假設的是把js檔案所在的目錄作為靜態伺服器的位址。

var realname = path.

join

('.'

, pathname)

;

然獲取到請求資源的檔案型別

var ext = path.

extname

(pathname)

;ext = ext ? ext.

slice(1

):'unknown'

;

然後判斷檔案是否存在,如果存在,則返回檔案,否者返回404

// 判斷檔案是否存在。

fs.exists

(realname,

function

(exists)

)

如果不存在

if

(!exists));

response.

write

('this request url'

+ pathname +

' was not found on this server.');

response.

end();

}

如果檔案存在,則讀取檔案的二進位製流

var requesttype =

;fs.

readfile

(realname,

'binary'

,function

(err, file));

response.

end(err);}

else);

response.

write

(file,

'binary');

response.

end();

}});

這樣,乙個簡單的http 靜態資源伺服器就寫好了。

nginx教程三,搭建乙個靜態資源Web伺服器

3.然後再將tar檔案壓縮成gzip檔案,上傳到nginx所在伺服器中 4.上傳到nginx所在伺服器後,將檔案解壓到 root webassets目錄下 二 nginx中的簡單配置 1.修改nginx.conf檔案如下,其中alias配置處理結果為 使用alias路徑替換location路徑,這是...

編寫乙個http的呼叫鏈

這李借鑑我同事寫的乙個呼叫鏈,看看如果個乙個請求加上乙個呼叫鏈,這個其實在其它程式設計裡面都會用到,如果熟悉 的對此會應該會更有體會 先看看測試 func regisry http.handler啟功服務,測試一下,step4 step3 authorizer authentication輸出如下,...

利用node發布乙個靜態資源服務

首先將node的fs模組裡面的方法封裝成promise模式 let fs require fs path require path 儲存的是當前模組執行所在的絕對路徑 dirname 建立web服務 let port 8686 let handle function handle req,res u...