node.js - 从 ejs 模板生成静态 HTML 文件

标签 node.js express ejs

好的,我已经启动并运行了我的基本 nodejs 网站。一切正常并通过 Node 服务器运行 - 使用我的 basic-node-site

它使用 ejs 作为模板引擎。

我想将这些模板作为静态网站发布。因此,所有内容都在本地生成,并将我的所有页面导出为静态 HTML 文件,我可以在我的基本托管平台上发布这些文件。无需服务器端技术。

我看过 jade,但它需要我更改模板和结构。

是否有任何工具可以将我当前的设置发布到包含所有生成的 html 文件的文件夹??

感谢您的帮助。不胜感激。

最佳答案

只要安装了 EJS npm 包就可以编译它。

var fs = require('fs'),
    ejs = require("ejs");

function ejs2html(path, information) {
    fs.readFile(path, 'utf8', function (err, data) {
        if (err) { console.log(err); return false; }
        var ejs_string = data,
            template = ejs.compile(ejs_string),
            html = template(information);
        fs.writeFile(path + '.html', html, function(err) {
            if(err) { console.log(err); return false }
            return true;
        });  
    });
}

ejs2html(__dirname+"/index.ejs")
  • 路径:文件的位置,包括__dirname 否则将不起作用
  • Information:需要编译的信息,如{users: ['bill','bob']}(可选)

EJS

Reading file in NodeJS

编辑

我使代码工作并测试了它,ejs 文件将被编译并写入同一目录,并在末尾附加 .html

关于node.js - 从 ejs 模板生成静态 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976477/

相关文章:

javascript - TypeScript:库函数的返回类型未知时该怎么办

javascript - Mongoose 不使用 Express 服务器发布

node.js - 如何在 React/Node/Express 中将 MongoDB Buffer 转换为 Image

javascript - 抢占式: How to avoid deep callback hierarchy in Node?(使用Express)

html - ejs - 未定义模板变量

node.js - 如何在一个 Express app.get() 中使用多个 res.render()

node.js - 使用 ejs 表达 knockoutjs

javascript - Nodejs 异步库中的简单 map 函数调用不起作用

node.js - 追加 ObjectId 数组

javascript - req.flash 不是函数 - 初始化顺序