1樓:育知同創教育
引入需要用到的幾個模組:
//http協議模組
//url解析模組
var url = require('url');
//檔案系統模組
var fs = require("fs");
//路徑解析模組
var path = require("path");
建立服務並在指定的埠監聽:
//建立乙個服務
//在指定的埠監聽服務
在建立服務的時候需要傳遞乙個匿名函式processrequest 對請求進行處理,processrequest接收2個引數,分別是request和response, request物件中包含了請求的所有內容,response是用來設定響應頭以及對客戶端做出響應操作。
processrequest:function(request,response));
response.end();
}//新增預設的訪問頁面,但這個頁面不一定存在,後面會處理
pathname += "index.html";
ha***t = false; //標記預設頁面是程式自動新增的
}//獲取資源檔案的相對路徑
//獲取對應檔案的文件型別
var contenttype = this.getcontenttype(filepath);
//如果檔名存在
fs.exists(filepath,function(exists));
var stream = fs.createreadstream(filepath,);
stream.on("error", function() );
response.end("");
});//返回檔案內容
stream.pipe(response);
}else );
response.end("");
}else
}catch (e)
response.writehead(200, );
response.end(html);}}
});},
如何用nodejs搭建web伺服器
2樓:匿名使用者
主要解決兩個問題,1是靜態資源的處理,2是動態資源的路由。
靜態資源在node.js裡的意思是不變的,如**、前端js、css、html頁面等。
動態資源我們一般指aspx頁面,ashx頁面,asp頁面,jsp頁面,php頁面等,而node.js裡其實沒動態資源這一說,它對請求的處理都是由**方法完成的,在我實現的httserver裡,借鑑了ashx的寫法,把處理請求的js檔案看作動態資源。
首先實現乙個處理靜態資源的函式,其實就是對本地檔案的讀取操作,這個方法已滿足了上面說的靜態資源的處理。
如何用nodejs搭建web伺服器
3樓:育知同創教育
使用node.js搭建web伺服器是學習node.js比較全面的入門教程,因為實現web伺服器需要用到幾個比較重要的模組:
http模組、檔案系統、url解析模組、路徑解析模組、以及301重定向技術等,下面我們就一起來學習如何搭建乙個簡單的web伺服器。
作為乙個web伺服器應具備以下幾個功能:
1、能顯示以.html/.htm結尾的web頁面
2、能直接開啟以.js/.css/.json/.text結尾的檔案內容
3、顯示**資源
5、形如http://***.***/a/b/ , 則查詢b目錄下是否有index.html,如果有就顯示,如果沒有就列出該目錄下的所有檔案及資料夾,並可以進一步訪問。
6、形如http://***.***/a/b, 則作301重定向到http://***.***/a/b/ , 這樣可以解決內部資源引用錯位的問題。
引入需要用到的幾個模組:
//http協議模組解析模組var url = require('url');//檔案系統模組var fs = require("fs");//路徑解析模組var path = require("path");建立服務並在指定的埠監聽:
//建立乙個服務
bind(this)); //在指定的埠監聽服務
在建立服務的時候需要傳遞乙個匿名函式processrequest 對請求進行處理,processrequest接收2個引數,分別是request和response, request物件中包含了請求的所有內容,response是用來設定響應頭以及對客戶端做出響應操作。
processrequest:function(request,response)); response.end(); return ; } //新增預設的訪問頁面,但這個頁面不一定存在,後面會處理 pathname += "index.
html"; ha***t = false; //標記預設頁面是程式自動新增的 } //獲取資源檔案的相對路徑獲取對應檔案的文件型別 var contenttype = this.getcontenttype(filepath); //如果檔名存在 fs.
exists(filepath,function(exists)); var stream = fs.createreadstream(filepath,); stream.on("error", function() ); response.
end(""); }); //返回檔案內容 stream.pipe(response); }else ); response.end(""); }else }catch (e) response.
writehead(200, ); response.end(html); } } });}
請求處理函式中有幾個重點需要說一下:
對於路徑中有中文的,瀏覽器會自動進行編碼(英文不變,中文會變),因此在接收到位址後,需要對位址進行解碼,否則最後得到的路徑和真實路徑不相符,
當訪問路徑不是以具體的檔案結尾,並且不是以/結尾,則需要通過重定向加上/,表示當前目錄,否則當前路徑下的靜態資源會找不到
如果訪問路徑是目錄,則列出該目錄下所有檔案及資料夾,並可以點選訪問,為了讓中文目錄能正常顯示,則還要在header中設定charset=utf-8
核心**就這麼多,大概140行左右,完整的**已上傳到
如果要執行demo,開啟cmd切換到根目錄,執行node start 即可。
如何使用nodejs快速搭建本地伺服器
4樓:育知同創教育
如果電腦沒有安裝nodejs的同學可以先到node官方**並安裝好node程式。 安裝好nodejs後驗證一下是否安裝成功!如果出現則表明node已經承裝安裝上去了!
安裝好node之後開啟cmd 輸入 npm install anywhere -g 安裝anywhere 以上兩個步驟都就緒以...
如何使用nodejs快速搭建本地伺服器
5樓:育知同創教育
方法/步驟
1如果電腦沒有安裝nodejs的同學可以先到node官方**並安裝好node程式。
安裝好nodejs後驗證一下是否安裝成功!如果出現則表明node已經承裝安裝上去了!
2安裝好node之後開啟cmd 輸入 npm install anywhere -g 安裝anywhere ,然後等待直到出現以下介面。
3以上兩個步驟都就緒以後,萬事俱備,只欠東風啦!在cmd頁面 找到你想搭建伺服器的路徑,然後再當前路徑下輸入: anywhere 8860
然後瀏覽器就自動開啟本地訪問**,乙個簡單的node伺服器就這樣被我們搭建好啦!
如何使用nodejs快速搭建本地伺服器
6樓:育知同創教育
安裝好nodejs後驗證一下是否安裝成功!如果出現則表明node已經承裝安裝上去了!
安裝好node之後開啟cmd 輸入 npm install anywhere -g 安裝anywhere
在cmd頁面 找到你想搭建伺服器的路徑
然後瀏覽器就自動開啟本地訪問**,乙個簡單的node伺服器就這樣被我們搭建好啦!
如何用python搭建乙個最簡單的web伺服器
7樓:黑馬程式設計師
用python建立最簡單的web服務
器利用python自帶的包可以建立簡單的web伺服器。在dos裡cd到準備做伺服器根目錄的路徑下,輸入命令:
python -m web伺服器模組 [埠號,預設8000]
例如
然後就可以在瀏覽器中輸入
http://localhost:埠號/路徑
來訪問伺服器資源。
例如當然index.htm檔案得自己建立)
其他機器也可以通過伺服器的ip位址來訪問。
這裡的「web伺服器模組」有如下三種:
basehttpserver: 提供基本的web服務和處理器類,分別是httpserver和basehttprequesthandler。
******httpserver: 包含執行get和head請求的******httprequesthandler類。
cgihttpserver: 包含處理post請求和執行cgihttprequesthandler類。
如何用nodejs搭建web伺服器
node.js 是乙個基於 chrome v8 引擎的 javascript 執行環境。node.js 使用了乙個事件驅動 非阻塞式 i o 的模型,使其輕量又高效。node.js 的包管理器 npm,是全球最大的開源庫生態系統。nodejs官網上的介紹 正如官網上介紹的那樣,nodejs確實很牛!...
如何用python搭建最簡單的Web伺服器
用python建立最簡單的web服務 器利用python自帶的包可以建立簡單的web伺服器。在dos裡cd到準備做伺服器根目錄的路徑下,輸入命令 python m web伺服器模組 埠號,預設8000 例如 然後就可以在瀏覽器中輸入 http localhost 埠號 路徑 來訪問伺服器資源。例如當...
如何搭建web站點
1,每個 用不同的ip 2,每個 用不同的port cookies 會有問題 3,每個 用不同的host headers 今天剛好碰到類似的問題 公司申請了兩個網域名稱,想要把這兩個網域名稱指向同乙個ip下的兩個不同的站點.因為思歸提供的鏈結都英文的,所以在這裡我在用中文描述一下方法3的步驟 1,設...