基于Node js的Portfolio CMS数据库

时间:2014-02-02 09:52:33

标签: node.js mongodb content-management-system

我是Node.js的新手,我有点卡住了。有一个投资组合CMS的项目突然出现在我脑海中,实际上是Ghost

的简单性

启发我,你只是下载并且它有效,但我突然意识到在这种情况下可能无法正常工作。据我所知,Ghost使用SQlight。

所以我的问题是,该平台将处理自定义页面,因此用户将能够创建像Wordpress一样的页面,将处理博客文章,图片库和主题。

我在考虑使用MongoDB,但我有一些问题。

因此人们可以创建图像库并将其作为短代码(仅仅告诉)插入到页面中,我的问题是。

  • MongoDB能否支持这种类型的cms?
  • 图库的嵌入数据是否会在未来出现问题或有任何限制?

图片库示例

Model.Gallery {
 id:        OjectId,
 name:      Gallery name 1,
 CreatedBy: userId,
 images: [
   {filename: 'image 1'},
   {filename: 'image 2'},
   {filename: 'image 3'},
  ]
} 

或者你会推荐别的吗?

谢谢

1 个答案:

答案 0 :(得分:2)

听起来你正在寻找KeystoneJS

(免责声明:我是核心撰稿人)

它是node.js的基于mongodb的CMS,并且有Yeoman generator可用于快速创建包含帖子,图片库和查询表单的博客站点。生成器使用jQueryBootstrap构建基本模板,因此可以轻松自定义或删除主题。

默认情况下,它使用Jade作为模板,但您可以使用任何模板引擎(EJS,nunjucks,dust等)对其进行配置。与用于CSS预处理的LESS相同(如Bootstrap所做的那样)。

虽然Ghost非常关注它提供的功能(并没有像Wordpress那样为您提供通用的CMS功能),但Keystone更灵活,其管理UI基于您定义的模型生成(在代码中,看起来非常类似于你问题中的例子)。因此,您可以添加其他模型,并在它们之间创建关系,管理UI将自动包含它们。

图像库实际上没有任何限制,因为在MongoDB中,您只是存储对图像的引用,而不是文件本身。为了在KeystoneJS中轻松实现这一点,我们经常使用名为Cloudinary的服务,它将为您处理上传和调整大小,并通过CDN提供图像。如果您愿意,Keystone还支持Amazon S3或本地文件系统。

对于自定义页面,您可以将其添加为其他模板,或者某些人为通用内容定义“页面”模型。

希望这有帮助!