将HTML从CouchBase检索到Node.js/Express 4时,它将不被描述

将HTML从CouchBase检索到Node.js/Express 4时,它将不被描述,node.js,express,character-encoding,couchbase,html-entities,Node.js,Express,Character Encoding,Couchbase,Html Entities,我在呈现存储在CouchBase中、由Node.js获取的HTML时遇到了一个小问题 在CouchBase中,我有几个小的HTML片段。它们包含文本、标记(如)和html实体(如)。当然,它们在JSON中存储为转义字符串 到目前为止,一切顺利。但是,当我将其拉出并显示在页面上时,它会按原样呈现,而不会被解释为HTML 例如: [ some content ...] <p>Lorem is &gt; ipsum<br />And another line</p

我在呈现存储在CouchBase中、由Node.js获取的HTML时遇到了一个小问题

在CouchBase中,我有几个小的HTML片段。它们包含文本、标记(如)和html实体(如)。当然,它们在JSON中存储为转义字符串

到目前为止,一切顺利。但是,当我将其拉出并显示在页面上时,它会按原样呈现,而不会被解释为HTML

例如:

[ some content ...]
<p>Lorem is &gt; ipsum<br />And another line</p>
[rest of content ...]
然后使用hogan.js将其传递给模板进行渲染


当研究这个问题时,我发现它可能与的编码有关,我在这里找到了解决方案:

将HTML放入Hogan模板时,必须使用{{{var}}}而不是{{var}}。 因此,它呈现出美丽的效果,正如预期的那样:

根本不是编码问题

var express = require('express');
var router = express.Router();

var couchbase = require('couchbase');
var cluster = new couchbase.Cluster('couchbase://myserver');
var bucket = cluster.openBucket('someBucket', 'somePassword');

var Entities = require('html-entities').XmlEntities;
entities = new Entities();
var utf8 = require('utf8');

/* GET home page. */
router.get('/', function(req, res) {



    bucket.get('my:thingie:44', function(err, result) {
         if(err) throw err
         console.log(result);
        var html = utf8.decode(entities.decode(result.value.thingie.html));
        // var html =   utf8.encode(result.value.thingie.html);
        // var html =   utf8.decode(result.value.thingie.html);
        res.render('index', { title: 'PageTitle', content: html });
    });

});