W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
以下部分顯示了如何創(chuàng)建一個(gè)簡(jiǎn)單的Web服務(wù)器,從文件夾返回HTML文件。
創(chuàng)建一個(gè)簡(jiǎn)單的HTML文件,名為index.html,我們計(jì)劃返回在服務(wù)器上的每個(gè)請(qǐng)求GET'/'。
You are looking lovely!
以下代碼顯示如何向客戶端提供靜態(tài)html文件。
var http = require("http");
var fs = require("fs");
//from o2fo.com
function send404(response) {
response.writeHead(404, { "Content-Type": "text/plain" });
response.write("Error 404: Resource not found.");
response.end();
}
var server = http.createServer(function (req, res) {
if (req.method == "GET" && req.url == "/") {
res.writeHead(200, { "content-type": "text/html" });
fs.createReadStream("./public/index.html").pipe(res);
} else {
send404(res);
}
}).listen(3000);
console.log("server running on port 3000");
如果啟動(dòng)服務(wù)器(運(yùn)行節(jié)點(diǎn)server.js)并在http://localhost:3000上打開(kāi)瀏覽器,你將看到我們之前創(chuàng)建的HTML頁(yè)面。
首先,創(chuàng)建一個(gè)簡(jiǎn)單的客戶端JavaScript文件,在HTML加載完成后附加到正文。
我們計(jì)劃從服務(wù)器請(qǐng)求此JavaScript文件。
window.onload = function () { document.body.innerHTML += "Talk JavaScript with me"; }
通過(guò)在< head>中添加腳本標(biāo)記,加載客戶端JavaScript文件,以修改我們的簡(jiǎn)單HTML文件。
為了支持這個(gè)JavaScript加載,我們需要使用path模塊來(lái)解析基于request.url屬性的文件系統(tǒng)上的文件的路徑。
我們還需要看看我們是否有為請(qǐng)求的文件類型注冊(cè)的MIME類型。
我們必須確保該文件存在,然后嘗試從文件系統(tǒng)讀取它。
這是向客戶端提供文件夾的源代碼。
var http = require("http");
var fs = require("fs");
var path = require("path");
// o2fo.com
function send404(response) {
response.writeHead(404, { "Content-Type": "text/plain" });
response.write("Error 404: Resource not found.");
response.end();
}
var mimeLookup = {
".js": "application/javascript",
".html": "text/html"
};
var server = http.createServer(function (req, res) {
if (req.method == "GET") {
var fileurl;
if (req.url == "/")
fileurl = "/index.html";
else
fileurl = req.url;
var filepath = path.resolve("./public" + fileurl);
var fileExt = path.extname(filepath);
var mimeType = mimeLookup[fileExt];
if (!mimeType) {
send404(res);
return;
}
fs.exists(filepath, function (exists) {
if (!exists) {
send404(res);
return;
};
res.writeHead(200, { "content-type": mimeType });
fs.createReadStream(filepath).pipe(res);
});
} else {
send404(res);
}
}).listen(3000);
console.log("server running on port 3000");
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: