NodeJS:如何将渲染视图保存为静态 .html 文件?

NodeJS : How to save a rendered view as a static .html file?

我在一个学校项目中使用 NodeJS,我必须生成一个带有 Express 和 swig 变量的动态 html 页面。但是问题来了:我必须将渲染的视图保存为静态 .html 文件。

我试图阅读有关 FS 的文档,但我没有找到关于获取整个 html 页面并将 html 代码放入文件中的任何内容。我找到的唯一方法是 "Right-click" 和 "save as" 但这不是我应该做的。

关于如何做到这一点有什么想法或建议吗?

如果您使用的是swig模板引擎,那么我们需要先获取Swig模板的输出:

var swig  = require('swig');
var template = swig.compileFile('/path/to/your/template.html');
var output = template({
    foo: 'bar'
});

现在你有了输出,我们可以使用 fs 来保存 html:

var fs = require('fs');
fs.writeFile("/path/to/destination.html", output, function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 

旁注:Swig 不再维护并且存在安全漏洞。