Node.js HTTP文件

2018-02-17 11:25 更新

服务基础HTML

以下部分显示了如何创建一个简单的Web服务器,从文件夹返回HTML文件。

创建一个简单的HTML文件,名为index.html,我们计划返回在服务器上的每个请求GET'/'。

 

 
   You are looking lovely! 
 
 

以下代码显示如何向客户端提供静态html文件。

var http = require("http"); 
var fs = require("fs"); 
//from www.w3cschool.cn
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"); 

如果启动服务器(运行节点server.js)并在http://localhost:3000上打开浏览器,你将看到我们之前创建的HTML页面。

服务目录

首先,创建一个简单的客户端JavaScript文件,在HTML加载完成后附加到正文。

我们计划从服务器请求此JavaScript文件。

window.onload = function () { 
    document.body.innerHTML += "Talk JavaScript with me"; 
}

通过在< head>中添加脚本标记,加载客户端JavaScript文件,以修改我们的简单HTML文件。 

 

为了支持这个JavaScript加载,我们需要使用path模块来解析基于request.url属性的文件系统上的文件的路径。

我们还需要看看我们是否有为请求的文件类型注册的MIME类型。

我们必须确保该文件存在,然后尝试从文件系统读取它。

这是向客户端提供文件夹的源代码。

var http = require("http"); 
var fs = require("fs"); 
var path = require("path"); 
//  www.w3cschool.cn
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"); 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号