为了使Web应用程序保持相关性,必须执行某种流程以确保可以尽快更新和修改所有内容。 为了满足这一需求,已经创建了诸如WordPress和Drupal的内容管理系统(或CMS),并取得了令人难以置信的成功。 话虽如此,这两个CMS解决方案都是使用PHP开发的,这不足为奇。 毕竟,这些项目是在2000年代初期构建的,当时PHP被视为Web编程语言中的佼佼者。 过去几年中服务器端JavaScript的兴起,导致了以Node.js为基础的各种CMS解决方案,因为它们的运行速度极快。
在本文中,我将为您提供三种此类CMS解决方案的概述:
- KeystoneJS
- 铅笔蓝
- 使徒
为了给您最好的见解,我将讨论这些平台各自使用的一些关键技术以及它们之间的独特性。 因此,您可以选择适合您正在开发的项目的平台。
KeystoneJS
KeystoneJS是基于Node.js构建的最受欢迎的CMS。 它的任务是为用户提供一种在MongoDB的帮助下轻松创建数据库驱动的网站的方法。 使用KeystoneJS进行安装和运行非常容易。 一种方法是安装一个称为generator-keystone
的Yo生成 generator-keystone
,然后使用它初始化一个新项目。 为此,您可以在项目目录中运行以下命令:
npm install -g generator-keystone
yo keystone
Keystone生成器允许用户根据自己的需求自定义应用程序。 它为开发人员提供了许多不同的选择,这总是一个加号。 默认情况下,Keystone应用程序使用Express框架和MongoDB 。 Keystone背后的人们共享了一个非常扎实的指南,侧重于如何开始使用该框架。 您可以在这里阅读 。
生成器完成Keystone应用程序的配置后,它将为用户提供样板应用程序,该应用程序配备了身份验证模板和博客系统。 KeystoneJS还为用户提供了一个用户界面,使添加新页面,创建SEO标签,定义URL以及其他操作变得容易。
KeystoneJS的其他一些技术使您可以直接配置embed.ly , Cloudinary和Mandrill 。 您可以参考此链接以获取完整的文档 。 绝对值得一提的是Keystone的文档在详细解释每个规范方面做得很好。
铅笔蓝
在列表的下一个是Pencilblue ,它是为服务于高流量Web应用程序而构建的CMS。 像KeystoneJS一样,Pencilblue提供了一个可靠的用户界面,使创建新页面和博客文章,定义SEO标签等变得容易。 使用Pencilblue的优势之一是其对Bootstrap , AngularJS和jQuery UI的内置支持。 因此,开发人员可以立即开始在其Pencilblue应用程序中实现自定义代码。 在后端,Pencilblue为MongoDB和Redis提供了内置支持,并允许开发人员轻松启用数据库项的缓存。
以下是Pencilblue命令行入门的代码:
npm install -g pencilblue-cli
pbctrl install [appName]
Pencilblue使用与WordPress主题非常相似的插件系统。 以下是默认的Pencilblue主题模板的示例; 它显示了插入符号是如何用于将模板加载到文件中的。 除此模板系统外,控制器是此CMS的另一个关键部分,因为它们允许开发人员向其添加功能。 由于Pencilblue是基于AngularJS之类的框架构建的,因此使用它的人可以利用他们对不同库的了解,为主题添加几个功能。
<!-- Loads template at admin/head.html -->
^tmp_admin=head^
<div class="container">
<!-- Retrieves the HELLO_WORLD localized text -->
^loc_HELLO_WORLD^
</div>
<!-- Loads analytics code -->
^analytics^
<!-- Loads template at admin/footer.html -->
^tmp_admin=footer^
而且,该CMS允许开发人员创建自己的模板和控制器系统以及自己的主题。 对于那些对加深该主题感兴趣的人,建议您阅读一下本主题快速开发指南 。
综上所述,Pencilblue为开发人员提供了一个非常强大的CMS解决方案。 它充分利用了Node.js引擎,并允许在其CMS中使用群集。 由于这种能力,许多开发人员已经考虑了从WordPress或Drupal迁移而改用Node.js多核处理器的可能性。
使徒
我们名单上的下一个是撇号 。 Keystone是用来创建数据库驱动的网站的,而CMS是用来创建设计驱动的网站的。 我包括了Apostrophe的演示网站的gif。 如您所见,它为开发人员提供了丰富的界面,并且使添加新内容,构建新页面等变得异常容易。
Apostrophe使用不同的技术,例如ImageMagick和MongoDB。 假设您已经在计算机上安装了Node.js,ImageMagick和MongoDB,则可以通过运行以下代码来开始使用Apostrophe Sandbox应用程序 :
git clone https://github.com/punkave/apostrophe-sandbox
cd apostrophe-sandbox && npm install
mkdir data && cp local.example.js data/local.js
node app apostrophe:reset
node app
如果打开浏览器并导航到端口3000,将看到Sandbox应用程序和一个用户界面,其中包含几个小部件,这些小部件允许开发人员添加文本或图像,创建新页面,编辑页面的现有区域以及多得多。
Apostrophe使用Nunjucks模板引擎向应用程序中添加自定义逻辑,并使用先前引用的ImageMagick来确保已优化添加到项目中的所有图像,以获得更好的性能以及查看效果。 渲染图像时,Apostrophe会根据页面上占据的区域自动缩放图像。 该CMS还为用户提供了轻松创建SEO描述,向页面添加自定义标签等的工具。
Apostrophe的开发人员提供了详细的文档,向用户显示如何配置平台以及如何使用该平台。 如果您想开始使用Apostrophe,这里是一个教程 ,它很好地概述了我上面提到的Sandbox应用程序。
结论
希望到现在为止,您已经对这些平台及其提供的功能有所了解。 如果您需要CMS,我绝对鼓励您使用上面讨论的三个中的一个,因为它们提供了很多有关功能的信息。 与往常一样,如果您有任何疑问,请随时在下面分享您的评论,我一定会尽快回复您!
From: https://www.sitepoint.com/exploring-different-cms-solutions-built-on-node-js/