通過nodejs 服務(wù)器讀取HTML文件渲染到頁面的方法
1.分別簡單實現(xiàn)三個備用頁面。
login.html頁面
index.html頁面
代碼片段:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
<style>
.center {
margin: auto;
width: 60%;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>
<h2>元素居中對齊</h2>
<p>水平居中塊級元素 (如 div), 可以使用 margin: auto;</p>
<div class="center">
<p><b>注意: </b>使用 margin:auto 無法兼容 IE8, 除非 !DOCTYPE 已經(jīng)聲明。</p>
</div>
</body>
</html>
notFount.html頁面
<!DOCTYPE HTML>
<html>
<head>
<script>
</script>
<style>
.center {
margin: auto;
width: 60%;
border: 3px solid #73AD21;
padding: 10px;
color:red;
}
</style>
</head>
<body>
<div class ="center" >404 Not Fount</div>
</body>
</html>
2.修改創(chuàng)建的nodejs 服務(wù)器頁面,對不同地址的請求做出不同的響應頁面。
在url地址判斷中添加,文件讀取代碼,以實現(xiàn)讀取定義的html頁面。
聲明文件系統(tǒng)對象:
// 聲明文件操作系統(tǒng)對象
var fs = require('fs');
實現(xiàn)文件內(nèi)容讀取并渲染到頁面
if(url ==='/'){
//response.writeHead(響應狀態(tài)碼,響應頭對象): 發(fā)送一個響應頭給請求。
response.writeHead(200,{'Content-Type':'text/html'})
// 如果url=‘/' ,讀取指定文件下的html文件,渲染到頁面。
fs.readFile('./practice/login.html','utf-8',function(err,data){
if(err){
throw err ;
}
response.end(data);
});
}
完整代碼:
/**
1.使用 HTTP 服務(wù)器與客戶端交互,需要 require('http')。
聲明http協(xié)議
*/
var http = require('http');
// 聲明文件操作系統(tǒng)對象
var fs = require('fs');
/**
2.獲取服務(wù)器對象
1.通過 http.createServer([requestListener]) 創(chuàng)建一個服務(wù)
requestListener <Function>
返回: <http.Server>
返回一個新建的 http.Server 實例。
對于服務(wù)端來說,主要做三件事:
1.接受客戶端發(fā)出的請求。
2.處理客戶端發(fā)來的請求。
3.向客戶端發(fā)送響應。
*/
var server = http.createServer();
/**
3.聲明端口號,開啟服務(wù)。
server.listen([port][, host][, backlog][, callback])
port <number> :端口號
host <string> :主機ip
backlog <number> server.listen() 函數(shù)的通用參數(shù)
callback <Function> server.listen() 函數(shù)的通用參數(shù)
Returns: <net.Server>
啟動一個TCP服務(wù)監(jiān)聽輸入的port和host。
如果port省略或是0,系統(tǒng)會隨意分配一個在'listening'事件觸發(fā)后能被server.address().port檢索的無用端口。
如果host省略,如果IPv6可用,服務(wù)器將會接收基于unspecified IPv6 address (::)的連接,否則接收基于unspecified IPv4 address (0.0.0.0)的連接
*/
server.listen(9001, function(){
console.log('服務(wù)器正在端口號:9001上運行......');
})
/**
4.給server 實例對象添加request請求事件,該請求事件是所有請求的入口。
任何請求都會觸發(fā)改事件,然后執(zhí)行事件對應的處理函數(shù)。
server.on('request',function(){
console.log('收到客戶端發(fā)出的請求.......');
});
*/
/**
5.設(shè)置請求處理函數(shù)。
請求回調(diào)處理函數(shù)需要接收兩個參數(shù)。
request :request是一個請求對象,可以拿到當前瀏覽器請求的一些信息。
eg:請求路徑,請求方法等
response: response是一個響應對象,可以用來給請求發(fā)送響應。
*/
server.on('request',function(request,response){
var url = request.url;
if(url ==='/'){
//response.writeHead(響應狀態(tài)碼,響應頭對象): 發(fā)送一個響應頭給請求。
response.writeHead(200,{'Content-Type':'text/html'})
// 如果url=‘/' ,讀取指定文件下的html文件,渲染到頁面。
fs.readFile('./practice/login.html','utf-8',function(err,data){
if(err){
throw err ;
}
response.end(data);
});
}else if(url === '/login'){
response.writeHead(200,{'Content-Type':'text/html'});
// 如果url=‘/' ,讀取指定文件下的html文件,渲染到頁面。
fs.readFile('./practice/login.html','utf-8',function(err,data){
if(err){
throw err ;
}
response.end(data);
});
}else if(url === '/index'){
response.writeHead(200,{'Content-Type':'text/html'});
// 如果url=‘/' ,讀取指定文件下的html文件,渲染到頁面。
fs.readFile('./practice/index.html','utf-8',function(err,data){
if(err){
throw err ;
}
response.end(data);
});
}else{
response.writeHead(200,{'Content-Type':'text/html'});
// 如果url=‘/' ,讀取指定文件下的html文件,渲染到頁面。
fs.readFile('./practice/notFount.html','utf-8',function(err,data){
if(err){
throw err ;
}
response.end(data);
});
}
});
最終實現(xiàn)效果:
開啟nodejs服務(wù)器,在地址欄中輸入:127.0.0.0.1:9001或127.0.0.0.1:9001/login

在地址欄中輸入:127.0.0.0.1:9001/index

在地址欄中輸入:127.0.0.0.1:9001/其他內(nèi)容

以上這篇通過nodejs 服務(wù)器讀取HTML文件渲染到頁面的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
node.js+postman實現(xiàn)模擬HTTP服務(wù)器與客戶端交互
本文主要介紹了node.js+postman實現(xiàn)模擬HTTP服務(wù)器與客戶端交互,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
node.js中使用q.js實現(xiàn)api的promise化
這篇文章主要介紹了node.js中使用q.js實現(xiàn)api的promise化,promise一個標準,它描述了異步調(diào)用的返回結(jié)果,包括正確返回結(jié)果和錯誤處理,需要的朋友可以參考下2014-09-09
nodejs實現(xiàn)郵件發(fā)送服務(wù)實例分享
本文給大家講解的是簡單的使用nodejs搭建郵件發(fā)送服務(wù)的一個實例,非常的好用,有需要的小伙伴可以參考下2017-03-03
nodejs利用ajax實現(xiàn)網(wǎng)頁無刷新上傳圖片實例代碼
本篇文章主要介紹了nodejs利用ajax實現(xiàn)網(wǎng)頁無刷新上傳圖片實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06

