我如何使用 Express 提供部分动态的 HTML 页面?

新手上路,请多包涵

好的,这是我的问题:我有一个我非常满意的 HTML 页面,但我希望使其动态化。我在 Express 中使用 Node,我想知道是否有任何方法可以修改然后呈现纯 HTML。我不会使用 Jade 或任何其他模板引擎。

我的服务器.js:

 var http = require('http');
var express = require('express');
var app = express()

var port = 3000;
var api_router = express.Router();

....

api_router.route('/webm/test/')
.get(function(req, res){
    res.sendFile(__dirname + "/test.html")
})

app.use('/api/', api_router);
app.listen(port);
console.log("NodeJS Backend API running.");

目前这不起作用(没有找到 HTML 的模板引擎)。它也不能满足我的需求:我希望根据 GET 请求在标签中设置“src=‘blah.webm’”。

这是我要修改的页面:

 <!DOCTYPE html>
<html>
    <head>
        <title>Index</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="../stylesheet.css">
        <link rel="stylesheet" type="text/css" href="stylesheet.css">
    </head>

    <body>
        <div id="header">
            <a href="../index.html"><p>../</p></a>
            <p>TrentV.net : Trent VanSlyke</p>
        </div>
        <div class="container" style="display: flex">
            <video id="player" src="CUSTOMIZE ME" controls></video>
            <div id="related">

            </div>

            <script src="webm.js" type="text/javascript"></script>
        </div>
    </body>
</html>

原文由 Trent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 562
2 个回答

您可以使用 此处 描述的快速视图模板

原文由 yeiniel 发布,翻译遵循 CC BY-SA 3.0 许可协议

然后使用 ejs 创建一个文件夹模板并在其中添加 registermessage 文件夹,并放置 html.ejs 用于 html 文件,style.ejs 用于 css 和 text.ejs 用于文本响应。

 var templateDir = path.join(__dirname, "../../../", 'templates', 'registermessage')

    var resetpassword = new EmailTemplate(templateDir)
        //var user = {name: 'Joe', pasta: 'spaghetti'}

// the dynamic variable to replace

    var locals = {

        message: message,
        email: email

    };

    resetpassword.render(locals, function (err, temp) {
        if (err) {
            console.log("error" + err + "results" + temp);
            //  console.log( temp.html);
            res.send(temp.html);
            //next(error, null);
        } else {
            //console.log(temp.html)
            res.send(temp.html);
            //  next(null, "email sent");
        }

    })
}

<%message %> 将动态替换 html.ejs

 <html lang="en" ng-app="xenon-app">
<head>
</head>
<body class="page-background" >
<div class="login-container" >

      <!--  Your email id  email -->
      <p style="font-family: Verdana, Geneva, sans-serif;font-size:13px;"><%=message %></p>

</div>
</body>

</html>

原文由 Himanshu sharma 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题