[英]NodeJs - include HTML file by using the filesystem
我是網絡編程的新手,並開始學習NodeJs。 我創建了一個僅用於測試和學習的新項目。 這是項目結構
我的Server.js包含此代碼
var http = require('http');
var url = require('url');
var fileSystem = require('fs');
var server = http.createServer(function(req, res) {
var page = url.parse(req.url).pathname;
res.writeHead(200, {"Content-Type": "text/html"});
fileSystem.readFile(getPage(page), null, function(error, data){
if(error){
throw error;
} else {
res.writeHead(data);
}
res.end();
})
});
server.listen(2312);
function getPage(page){
var content = "Templates/";
switch (page) {
case "/Page1":
content += 'Page1.html';
break;
case "/Page2":
content += 'Page2.html';
break;
case "/Page3":
content += 'Page3.html';
break;
default:
content += 'Page404.html';
}
return content;
}
我的html文件包含非常簡單的HTML代碼
第1頁
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="Button.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="Btns.js"></script>
</head>
<body>
<button onclick="loadPage2()">Load Page 2</button>
<button onclick="loadPage3()">Load Page 3</button>
</body>
</html>
因此,在嘗試http://localhost:2312/Page1
我的狀態代碼為0。
_http_server.js:195拋出新的RangeError(
Invalid status code: ${statusCode}
); ^RangeError:無效的狀態代碼:0在ServerResponse.writeHead(_http_server.js:195:11)at ... \\ TestProjekt \\ Server.js:13:9 at FSReqWrap.readFileAfterClose [as oncomplete](fs.js:439:3 )
是否可以通過這種方式加載html文件?
我知道我可以使用Express框架,但我想到了學習並從本機代碼開始。
更改res.writeHead(data);
res.write(data);
writeHead()
向請求發送響應頭。
write()
發送數據。
第一次調用response.write()
,它會將緩沖的頭信息和正文的第一個塊發送給客戶端。 第二次調用response.write()
,Node.js假設數據將被流式傳輸,並分別發送新數據。
var readSream = fs.createReadStream('index.html','utf8')
readSream.pipe(響應);
var http = require('http');
var fs = require('fs');
http.createServer(function(request, response) {
response.writeHeader(200, {"Content-Type": "text/html"});
var readSream = fs.createReadStream('index.html','utf8')
readSream.pipe(response);
}).listen(3000);
console.log("server is running on port number ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.