strapi 是一套用于图形化构建和管理后端数据的平台,同时也是基于前端技术的内容管理工具CMS,可以实现RESTful和GraphQL无缝接入。
下面就是我的新手引导的记录。
安装
按照官方说明,使用下列命令:
1 | yarn create strapi-app <project-name> |
会有两种安装方式:快速和自定义,其实就是数据库的选择。在这里我使用mysql配置下来(注意使用数据库mysql时,要求5.7及以上版本才行),安装依赖结束后启动。
1 | yarn develop |
即可。
按照官方的新手引导即可完成内容的类型创建和添加。
使用 Graphql
strapi使用Graphql 也十分方便。
1 | yarn strapi install graphql |
使用图片服务端
七牛云、阿里云、腾讯云都有相应的npm
插件包(strapi-provider-upload-qiniu,strapi-provider-upload-oss 和 strapi-provider-upload-tencent),安装即可。这些适应器以 strapi-provider-[type]
来区分, type
如 upload
, email
, 可直接在npm
官方搜索到。
之后我们就可以在 插件
-> FILES UPLOAD — 多媒体档案管理
右侧配置按钮即可进入配置项。
多数据库 😣
在 ./config/environments/**/database.json
中,可以添加多个数据库,然而在图形化添加数据类型时,没有选择数据库的选项,而在添加完后在相应的目录下 modules/[name].settings.json
中有相应的字段connection
;
*** 临时更改默认连接数据库
在 database.json
中配置多个数据库后, 临时更改 defaultConnection
再去创建类型模型即可.
网上说在选择内容类型名称时会看到要使用的连接的下拉列表,然而我一直没找到.
*** 利用 hook
来使用 redis
数据库
官方 strapi
规定 strapi-hook-[name]
的npm模块包会自动引入 hook
系统;
因此安装npm i strapi-hook-redis
, 然后启用: config/hook.json
添加:
1 | { |
然而,根据strapi-hook-redis
的 index.js
文件说明, 在database.json中添加如 connector: 'strapi-hook-redis'
的数据库字段,却无法跑起来去❌,难😣!
policies 使用
policies 是用来处理路由请求的规则,可以做校验或对其他的接口操作(如定时器,logger等)。
CLI工具
如果是全局安装了 strapi, 则直接使用;
局部安装可执行 .\node_modules\.bin\strapi
自定义二级域名
- 使用
nginx
的proxy_pass
来代理, 如/api/
配置到http://127.0.0.1:1337/
- 更改页面的js为相对路径,在
build
目录下的index.html
文件,如/admin/runtime~main.08b11d8f.js
改成./admin/runtime~main.08b11d8f.js
- 更改
config/environments/相应环境/server.json
中的host
为你的子目录地址,如leeapps.cn/api/
实际使用
- 首次安装使用mysql数据库时,必须
yarn develop
来运行才能创建管理员登陆帐号 - 进入管理页会加载比较久,主要资源js文件太大,在
build
目录下有个8.5M的js文件,(启用gzip后为5.66M, 在````./config/environments/**/response.json`````````)而安装更多其他插件时则不太影响,整个build目录足足28M多(未启动gzip压缩); 角色和权限
可以配置所有接口的使用权限- 目测
strapi
提供的 第三方用户授权是面向接口内容的用户的,可以在角色和权限
中的提供者内配置或添加自己的第三方用户授权,注意不是管理员用户。