如何通过nodejs创建和存储html页面?

时间:2018-09-20 21:03:12

标签: html node.js

我在node.js中编写了该应用程序,该应用程序在MongoDB数据库中收集数据。即:

  • 姓名:John
  • 页面名称:我的页面
  • 链接:[link1,link2,link3]

我需要使用pagename.mydomainname.com创建静态HTML页面,并将变量(名称,link1,link2 ..)中的内容放入此HTML页面中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p>My name is - name</p>
    <p>My link 1 is - link1</p>
    <p>My link 2 is - link2</p>
    <p>My link 3 is - link3</p>
</body>
</html>

并将此HTML文件存储在服务器上的特殊文件夹中。如何使用Node.js?

1 个答案:

答案 0 :(得分:1)

您需要一个模板库。最容易使用和最受欢迎的模板库之一就是把手。

https://www.npmjs.com/package/handlebars

使用车把定义一个模板,然后在该模板上抛出JSON,它吐出响应。

以下是npm页面上的示例:

var source = "<p>Hello, my name is {{name}}. I am from {{hometown}}. I have " +
         "{{kids.length}} kids:</p>" +
         "<ul>{{#kids}}<li>{{name}} is {{age}}</li>{{/kids}}</ul>";
var template = Handlebars.compile(source);

var data = { "name": "Alan", "hometown": "Somewhere, TX",
         "kids": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]};
var result = template(data);
  

将渲染:

     

你好,我叫艾伦。我来自德克萨斯州的某个地方。我有2个孩子:

     
        
  • 吉米12岁
  •     
  • 莎莉4岁
  •   

车把文档很好。 http://handlebarsjs.com/

还有其他模板库,但这是第一。

nunjucks是另一个不错的选择。 https://www.npmjs.com/package/nunjucks

还有其他一些,只要有兴趣,就搜索车把的替代品。

使用这些模板库之一,您将使用fs.writeFile

将输出数据写入文件

如果您想要一个更简单的文件,它可以从命令行运行并内置了文件生成功能,请尝试使用envsub。

https://www.npmjs.com/package/envsub