如何在用node.js生成的html中显示变量

时间:2019-04-25 11:29:31

标签: javascript html node.js

出于培训目的,我试图在我的html页面中显示路径名的一部分。

例如,如果URL类似于:http://localhost:8080/firstname/abcd
我希望我的浏览器显示:“你好abcd”

const config = require('./config');
var http = require('http');
var url = require('url'); 

var server = http.createServer(function(req, res) {

var path = url.parse(req.url).pathname;

    if(path.includes('firstname'))
    {
        firstname = path.replace('/firstname/', '');

        res.writeHead(200, {"Content-Type": "text/html"});
        res.write('<!DOCTYPE html>'+
            '<html>'+
            '    <head>'+
            '        <meta charset="utf-8" />'+
            '        <title>Node.js tests</title>'+
            '    </head>'+ 
            '    <body>'+
            '       <p id = "name"></p>'+
            '    </body>'+
            '<script type="text/javascript">
            'document.getElementsById("name").innerHTML = ("Hello " + firstname)'+
            '</script>'+
            '</html>');
        res.end();
    }
    else
    {
        console.log('Nothing to display');
    }
});
server.listen(config.env.port);

您可能会猜到,页面显示为空。

2 个答案:

答案 0 :(得分:1)

如果只想显示firstname部分以外的路径,则:

var server = http.createServer(function(req, res) {

var path = url.parse(req.url).pathname;

    if(path.includes('firstname'))
    {
        let firstname = path.replace('/firstname/', '');
        res.writeHead(200, {"Content-Type": "text/html"});
        res.write('<!DOCTYPE html>'+
        '<html>'+
        '    <head>'+
        '        <meta charset="utf-8" />'+
        '        <title>Node.js tests</title>'+
        '    </head>'+ 
        '    <body>'+
        '       <p id = "name">'+
              'hello ' + firstname +
              '</p>'+
        '    </body>'+            
        '</html>');
    }
    else
    {        
        res.write('Nothing to display');
    }
    res.end();
});
server.listen(config.env.port);  

转到http://localhost:8080/firstname/abcd会得到Hello abcd

答案 1 :(得分:0)

为什么要在HTML中使用js代码?

您可以呈现静态HTML页面并将其作为响应发送。 像这样:

admin_post.php