如今前端搭建一個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