2013-04-18 59 views
1

我現在正在構建一個簡單的應用程序,其中包括編輯博客等內容。我有幾個選項,比如tinymc,一個很好的html編輯器,我打算使用它。但後來我發現了一些關於減價的內容,現在很容易使用和流行。在支持降價的編輯器中,EpicEditor是一個不錯的選擇。由於某些原因,所見即所得的操作非常複雜。所以我決定使用降價編輯器。該應用程序應該將html內容還是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。 雖然保存降價到數據庫的好處在於,當用戶想要再次編輯內容時,客戶端更容易編輯降價內容。

+0

定義「更好」。沒有澄清,更好的是主觀的和毫無意義的,而這個問題是無法回答的。 –

回答

3

一般來說,最好保留原始輸入,然後根據需要對目標視圖進行轉換。這樣,您可以將原始輸入返回給以後進行編輯,並將原始輸入轉換爲不同視圖的不同格式(例如,如果您想將數據放入電子郵件中,則可以將標記留爲文本的純文本電子郵件的版本)。這就是說,對HTML進行降價可能代價很高(就CPU而言),因此您可能希望在輸入時(或首次查看時)將其轉換爲HTML,然後將結果緩存(可能在相同的另一列中數據庫表作爲降價存儲)。你應該仍然保留原始輸入。

相關問題