strapi是什么?
基于Nodejs的开源免费CMS框架
为什么选择它?
- 基于nodejs,100%JavaScript,上手迅速
- 可轻松创建功能强大且可自定义的API
- 可以使用任何喜欢的数据库
先决条件
首先你的电脑需要具备以下环境,再执行命令
- nodejs 16+
- python3
- yarn
快速搭建Strapi项目
我选择是自定义搭建方式,创建之前,我在本地创建了一个新的数据库
执行指令
npx create-strapi-app@latest my-project
运行项目
yarn develop
开始配置
创建管理员账户设置账号密码并记住账号密码
进入strapi框架的主面板
管理后台的界面是用React写的我们可以在node_modules@strapi\admin\目录下找到相关页面文件
项目启动以后,我们打开数据库,会发现项目自动为我们创建了很多表
这个就是我刚刚创建的管理员账号
SELECT * FROM `admin_users`
我们回到管理后台
菜单介绍
下面我们来分析一下这些菜单的作用
- content-types builder是核心的内容管理器,可以建表,添加各种类型的字段。
- collection type-数据库建的表集合
- single type-相当于对象,只存一条记录
点击 Users 可以看到我们刚刚创建的账号信息
数据库字段名定义问题
接下来说一下建表以及字段名设置的问题
我们观察发现,strapi自动创建的表名都是以下划线格式命名,我们使用界面化工具来进行创建测试
我在前端界面创建
- 表名:termsInfo
- 字段名:contentInfo
保存创建内容
我们去数据库看一下我们现在创建的信息
我们可以得出结论
-
- 红圈部分是strapi自动帮我们创建的字段,如果我们要创建字段,不可以和已有字段名相冲突
- 红圈部分是strapi自动帮我们创建的字段,如果我们要创建字段,不可以和已有字段名相冲突
- 2.表名会自动添加s后缀,在数据库中用下划线格式命名
- 3.关于字段名,不管我们使用哪种命名格式,strapi会自动帮我们转化为下划线格式存入数据库表
我们使用不同格式的命名规则来进行测试,下面我用三种命名创建字段
我们去数据库看一下
SELECT * FROM `terms_infos`
代码分析
为什么会是这种情况呢?我们从代码可以分析得出结果
创建字段完成以后,系统调用了接口
Request URL: http://localhost:1337/content-type-builder/content-types/api::terms-info.terms-info
Request Method: PUT
我们去观察代码发现,系统自动创建了如下文件
在数据库代码中我们可以看到:
代码路径:my-project\node_modules@strapi\database\lib\index.js
我们发现,在这里,strapi帮我们存储数据的时候,把我们的命名改为了下划线格式破案啦
由此可见,不管我们使用哪种命名格式,strapi会自动帮我们转化为下划线格式存入数据库表
接口测试
我们存储几条数据,然后配置接口进行访问测试
接下来我们进行接口测试
我们先创建一条数据
然后我们配置接口权限
保存,然后访问我们配置的接口
API: http://localhost:1337/api/terms-infos
我们可以看到结果如下:
我们做个对比图
我们可以得出结论,strapi帮我们把字段名做了mapping,我们创建的就是接口返回的字段名~
字段名映射表
好啦,今天就到这里啦~~
欢迎大家指出文章需要改正之处~
学无止境,合作共赢