如今前端搭建一个CMS有不少选择,能够用php,不过据说php立刻也考虑使用vue了。基于php的有wordpress,typora等,都是很成熟的cms。
其它的还有静态博客,如hexo,jekyll,敲一敲命令,就能够部署到github或者阿里云上面。php
固然咱们能够选择node来做为咱们开发的动力,这里又有不少开源的基于node的CMS能够选择了css
express
koa
thinkjs 360开发的node框架,有点相似thinkphp 能够直接写async和awaite 支持ts
sails.js
阿里的egg
hapi前端
今天咱们要讲的是keystone,仓库在这里 https://github.com/keystonejs/keystonevue
官网在这里 http://keystonejs.com/node
http://www.sydjs.com/
http://makeandbuild.com/nginx
首先安装node和mongodbgit
安装keystone-generaotr
npm install -g generator-keystonegithub
安装yeoman
npm install -g yeomanweb
建立新目录
mkdir test
cd testredis
生成
yo keystone
启动
node keystone
打开浏览器的3000端口你就能够看到你的项目了
|--lib | 定制的库和代码 |--models | 程序的数据库模型 |--public | 公开的静态文件 (css、js、images等) |--routes | |--api | | 程序的api控制器 | |--views | | 程序的视图控制器 | |--index.js | | 初始化程序的路由和视图 | |--middleware.js | | 为路由定制的中间件 |--templates | |--includes | | 通用的 .jade 组件放这里 | |--layouts | | 基础 .jade 布局放这里 | |--mixins | | 通用的 .jade mixins放这里 | |--views | | 程序的视图模板 |--updates | 数据组装和迁移脚本 |--package.json | 给npm的项目配置 |--web.js | 启动程序的主脚本
若是你学过express 那么这些参数都很简单
有3种方式配置keystone的参数
env参数 影响缓存已编译模板
views 放程序视图模板的路径
'views': 'templates/views', 'view engine': '.hbs', 'custom engine': handlebars.create({ layoutsDir: 'templates/views/layouts', partialsDir: 'templates/views/partials', defaultLayout: 'default', helpers: new require('./templates/views/helpers')(), extname: '.hbs', }).engine,
若是你的Mongodb在阿里云上或者在其余主机上,须要自定义,由于默认是localhost
MONGO_URI=mongodb://your-server/database-name
能够选用nginx或者node提供的https服务器
若是选择keystone提供额,须要设置下面的参数
ssl
ssl key 指向SSL秘钥的路径
ssl cert 指向ssl证书的路径
ssl port 启动ssl服务器的端口,默认为3001
mongo process.env.MONGO_URI || "mongodb://localhost/your-db"
wysiwyg 所见即所得
keystone.set('wysiwyg additional options', { external_plugins: { 'image':'http://bhaltair.oss-cn-shanghai.aliyuncs.com/tinyMCE/plugins/image/plugin.min.js' }, selector: "textarea", // change this value according to your HTML plugin: 'textpattern', textpattern_patterns: [ {start: '*', end: '*', format: 'italic'}, {start: '**', end: '**', format: 'bold'}, {start: '#', format: 'h1'}, {start: '##', format: 'h2'}, {start: '###', format: 'h3'}, {start: '####', format: 'h4'}, {start: '#####', format: 'h5'}, {start: '######', format: 'h6'}, {start: '1. ', cmd: 'InsertOrderedList'}, {start: '* ', cmd: 'InsertUnorderedList'}, {start: '- ', cmd: 'InsertUnorderedList'} ] })
cookie secret 浏览器cookies的加密秘钥,最好设为一个长长的随机字符串
session store 默认存在内存中,你能够设置为mongo 或者conncet-redis
设置你的云服务器和github的ssl登陆 设置你本地主机到你的云服务器的ssl登陆 配置pm2的.echosystem.config.js pm2 deploy