如何使用简单的节点服务器将额外的参数传递给HTML文件?

时间:2018-09-05 22:43:14

标签: html node.js

我构建了一个非常简单的节点服务器,该服务器仅提供HTML文件。以下是 server.js 的代码:

var http = require('http');
var fs = require("fs");

http.createServer(function(request, response) {

    if(request.url === "/"){
        sendFileContent(response, "index.html", "text/html");
    }
    else{
        console.log("Requested URL is: " + request.url);
        response.end();
    }
}).listen(3000);

function sendFileContent(response, fileName, contentType){
    fs.readFile(fileName, function(err, data){
        if(err){
            response.writeHead(404);
            response.write("Not Found!");
        }
        else{
            response.writeHead(200, {'Content-Type': contentType});
            response.write(data);
        }
        response.end();
    });
}

现在,它提供的文件是 index.html ,如下所示:

<!doctype HTML>
<html>
    <head>
        <title>
            My App
        </title>
    </head>
    <body>
        <h1>
            Hello {{ name }}!
        </h1>
    </body>
</html>

如果我运行此文件并转到本地主机上的3000端口,则浏览器将加载index.html。

我想做的是一个能够传递参数名称的实现,该名称将出现在{{ name }}中的模板中。做这样的事情我有什么选择?

请注意,理想情况下,我想要一个独立的解决方案,而不是一个现有的库。另外,如果我必须使用正则表达式,然后查找并替换参数,执行此操作的正确方法是什么?谢谢!

0 个答案:

没有答案