应用程序应该将html内容或降价内容保存到数据库中吗?

时间:2013-04-18 15:25:05

标签: html editor markdown epiceditor

我现在正在构建一个简单的应用程序,其中包括编辑博客等内容。我有一些选项,比如tinymc,一个很好的html编辑器,我打算用它。但后来我找到了一些关于降价的东西,它很容易使用,也很受欢迎。在降价支持的编辑中,EpicEditor是一个不错的选择。由于某些原因,所见即所得很糟糕而且很复杂。所以我决定使用markdown编辑器。

然后在node.js服务器端,我有两个选择来存储内容,在markdown或html中,就像在cod中一样,它首先将markdown解析为html,然后将其保存到数据库中。

app.post('/post', function(req, res){
    var currentUser = req.session.user,
        html = markdown.makeHtml(req.body.post),
        post = new Post(currentUser.name, req.body.title, html);
    post.save(function(err){
        if(err){
            req.flash('error', err); 
            return res.redirect('/');
        }
        req.flash('success', 'scc!');
        res.redirect('/');
    });
});

将html保存到数据库的优点是,加载内容时,应用程序不需要从markdown解析为html。 保存markdown到数据库的优点是,当用户想要再次编辑内容时,客户端更容易编辑降价内容。

1 个答案:

答案 0 :(得分:3)

一般来说,最好保留原始输入,然后对目标视图进行转换(按需)。这样您就可以将原始输入显示回来供以后编辑,并将原始输入转换为不同视图的不同格式(例如,如果您想将数据放入电子邮件中,则可以将标记保留为文本的纯文本电子邮件的版本。)

也就是说,Markdown to HTML可能代价很高(就CPU而言),因此您可能希望在输入时(或首次查看时)转换为HTML,然后缓存结果(可能在同一数据库的另一列中)表格作为降价存储)。你仍然应该保留原始输入。