我們一般通過node框架提供的api操作頁面渲染,如何利用原始回寫的方式來實現同樣的功能呢
下面是通過node 提供的非同步地讀取一個檔案的全部內容api readFile進行操作,程式碼如下:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" type="text/css" href="./static/style.css" />
<title>Document</title>
</head>
<body>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<div>這是一個div </div>
<script type="text/javascript" src="./static/test.js"></script>
</body>
</html>
/static 資料夾裡面放test.js 和 style.css 檔案
div:nth-child(1){
font-size: 50px;
color: red;
}
div:nth-child(3){
font-size: 80px;
color: blue;
}
div:nth-child(6){
font-size: 100px;
color: blueviolet;
}
app.js
// 搭建服務
var http = require(`http`);
var fs = require(`fs`);
var server = http.createServer();
server.on(`listening`,()=> {
console.log(`server starts at localhost 8080`);
})
server.listen(`8080`,`localhost`);
//監聽服務
server.on(`request`,(req,res)=>{
if(req.url == `/`) {//渲染html檔案
fs.readFile(`./html/node.html`,(err,info)=>{
res.write(info);
res.end();
})
} else if(req.url.startsWith(`/static`)) {//統一渲染html需要的static靜態檔案到頁面
fs.readFile(__dirname + req.url,(err,info) =>{
res.write(info);
res.end();
})
}
})