我正在Angular 7中创建一个博客应用程序项目。使用firebase云功能作为后端,并通过使用Angular-CKEditor组件将html内容保存到firebase中来进行CRUD操作。
在Firebase中看起来像这样
content: "<p>Sample Blog Post</p><img src="someLink">"
然后在页面中呈现该字符串
<div [innerHTML]="content"></div>
我认为这种方法称为WYSIWYG(所见即所得),效果很好,但我觉得这不是有效的方法。
我想拥有一个博客网站,上面只有博客文章,没有其他功能。对于我的情况,这种方法有什么问题吗?如果有问题,您能推荐其他解决方案吗?
谢谢。
答案 0 :(得分:5)
将HTML保存到数据库中的方法绝对没有错。
事实上,这就是Wordpress的工作方式。
仅供参考,“所见即所得(所见即所得)”通常适用于诸如编辑器之类的东西:
https://en.wikipedia.org/wiki/WYSIWYG
WYSIWYG(WYSIWYG(/ ˈwɪziwɪɡ / WIZ-ee-wig)[1]的首字母缩写为“所见即所得” 您得到什么。”在计算中,所见即所得编辑器是一个系统,其中 内容(文本和图形)可以以类似于以下形式的形式进行编辑 打印或显示为成品时的外观,[2] 例如打印的文档,网页或幻灯片演示文稿。
答案 1 :(得分:2)
对于一个简单的博客网站,以这种方式保存内容听起来很自然。
HTML标记确实是您自己进行编程的最简单方法。 (另一种方法是markdown,您已经在此站点上使用了它。这也相当简单,但是仍然需要一个附加库,并且markdown文本仍存储在数据库中,因此您并未真正保存任何编程步骤。)
为了安全起见,我建议您检查平台的某些功能,以便验证HTML标记,并删除无效的标记。 PHP手册中有一些很好的例子:
答案 2 :(得分:1)
如果您使用实时数据库,那么使用firestore数据库会很糟糕,它将解决问题。
很少有解释如何根据网络上多少mb用于获取和存储数据来计算成本实时数据库的工作方式。 Firestore将注册对数据库的读写操作。
如果要使用它,可以将其作为字符串存储在Firestore中,它将使用一个写入操作。不要发送任何信件,因为这将使用大量写操作。如果您想这样做,我想解释一下如何做。
混合版本:
最后,这也是我使用的混合版本,我可以使用它们提供的免费服务存储大量数据。