我有一些脚本,我保存在数据库中,例如 -
<ul>
<li><a href="blog.html">Blog</a></li>
<li><a href="blog-sidebar.html">Blog with sidebar</a></li>
<li><a href="blogpost.html">Blog post</a></li>
<li><a href="blogpost-sidebar.html">Blog post with sidebar</a></li>
</ul>
当我使用节点js应用程序在html页面中打印它时,它只是将其打印为STRING,我希望它像实际的html脚本一样工作(因为它在某些其他语言中工作,如php)
引擎我用来生成html页面正在流动
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + "/views"));
答案 0 :(得分:1)
根据twig php文档,有一个原始过滤器http://twig.sensiolabs.org/doc/filters/raw.html,它将内容标记为安全。
所以我建议尝试
{{ htmlResponseFromMongoDB | raw }}
然而,twig.js实现似乎不支持此过滤器https://github.com/justjohn/twig.js/wiki/Implementation-Notes
根据文档的替代方案是关闭该块周围的自动景观。
{% autoescape false %}
{{item}}
{% endautoescape %}
答案 1 :(得分:0)
你是如何打印到HTML的? 试试这个:
app.get('/page1', function(req, res)
{
var fromdb = '<ul> \
<li><a href="blog.html">Blog</a></li> \
<li><a href="blog-sidebar.html">Blog with sidebar</a></li> \
<li><a href="blogpost.html">Blog post</a></li> \
<li><a href="blogpost-sidebar.html">Blog post with sidebar</a></li> \
</ul>';
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<html><head></head><body>');
res.write(fromdb);
res.end('</body></html>');
});