[英]Return html tags from json without converting to ascii in express
我想將HTML標簽存儲在JSON文件中。 這個JSON文件就像是我的靜態Express應用程序的數據庫,可以存儲博客文章,文本,頁面等。
var express = require('express'),
router = express.Router();
exports.fsAsync = function fsAsync(callback) {
fs.readFile(__dirname + '/../database/data.json', 'utf8', (err, data) => {
if (err) throw callback(err);
callback(null, JSON.parse(data));
});
};
/* GET Contact page. */
router.get('/', function(req, res, next) {
fsAsync(function (err, data) {
if (err) {
return res.render('404', {
title: 'Error 404'
});
}
var contact = data[2].contact;
res.render('contact', {
data: contact
});
});
});
JSON文件特定部分:
{
"contact": {
"body": "<p>This is the Contact Page!<br />But maybe I want to store some <a href=\"#\">links</a> in my text also!</p>"
}
},
這將JSON中的html標記轉換為ascii:
<main class="contact">
<article>
<p>This is the Contact Page!<br />But maybe I want to store some <a href="#">links</a> in my text also!</p>
</article>
</main><!-- main.about-me -->
有沒有辦法做到這一點?
模板引擎是express-handlebars
:
app.engine('hbs', exphbs({
extname: 'hbs',
defaultLayout: 'main',
// Specify helpers which are only registered on this instance
helpers: {
// register hbs helpers in res.locals' context which provides this.locale
__: function() { return i18n.__.apply(this, arguments); },
__n: function() { return i18n.__n.apply(this, arguments); }
}
}));
app.set('view engine', 'hbs');
app.set('views', __dirname + '/views');
使用車把,您可以使用三個{{{ }}}
括號獲取原始HTML輸出。
<main class="contact">
<article>
{{{ body }}}
</article>
</main>
您需要告訴模板引擎它是html,在ust s
過濾器中將自動進行html編碼:
<main class="contact">
<article>
{body|s}
</article>
</main>
我不得不將html代碼存儲在json中。 我使用此網站來格式化html並轉義必要的字符。
http://www.freeformatter.com/javascript-escape.html
不確定這是否是您要尋找的東西,但是,加油!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.