基于Node js的Portfolio CMS数据库

我对Node.js来说很新奇,而且我被卡住了一点。 有一个项目组合CMS出乎我的意料,实际上是Ghost的简单

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

所以我的问题是,平台将处理自定义页面,所以使用将能够创build像WordPress的页面,将处理博客post,图片库和主题。

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

所以人们将可以创build图像库,并将其作为简短的代码插入到页面(只是告诉),我的问题是。

  • MongoDB是否适合这种types的CMS?
  • 图库的embedded数据是否会在未来造成问题或有任何限制?

图片库的例子

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

或者你会推荐别的吗?

谢谢

听起来你正在寻找KeystoneJS 。

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

这是一个基于mongodb的node.js CMS,并有一个Yeoman生成器 ,您可以使用它快速创build包含文章,图像库和查询表单的博客网站。 生成器使用jQuery和Bootstrap构build基本模板,因此很容易自定义或放置主题。

它默认使用Jade作为模板,但是可以使用任何模板引擎(EJS,nunjucks,dust等)来configuration它。 和LESS的CSS预处理一样(就像Bootstrap一样)。

虽然Ghost非常注重它所提供的function(并且不提供像Wordpress这样的通用CMSfunction),但Keystone更加灵活,其pipe理界面是基于您定义的模型生成的(在代码中,类似于你的问题中的例子)。 所以你可以添加其他模型,并创build它们之间的关系,pipe理界面会自动包含它们。

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

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

希望这可以帮助!