以前php在巅峰的时候,呈现了WordPress
,Typecho
,Z-Blog
,等等一批风行的CMS框架,当然他们也得益于,Thinkphp
,Laravel
等等一批风行的mvc框架,时至至今,像Thinkphp和Laravel仍然很风行,建设一个网站从部署到公布可能也就3分钟搞定了
当然我明天要介绍的node.js框架的strapi
框架,咱们能够比照风行的WordPress
Strapi
Strapi 是一款开源无头 CMS,它使开发者能够自由选择本人喜爱的工具和框架,并容许编辑人员应用利用的治理面板来治理和散发其内容。 Strapi 基于插件零碎,是一个灵便的 CMS,其治理面板和 API 是可扩大的 – 并且每个局部都能够定制以匹配任何用例。 Strapi 还具备内置用户零碎,可具体治理管理员和终端用户有权拜访的内容
WordPress
WordPress是一款集体博客零碎,并逐渐演化成一款内容治理系统软件,它是应用PHP语言和MySQL数据库开发的,用户能够在反对 PHP 和 MySQL数据库的服务器上应用本人的博客
他们最大的特点就是来说Wordpress它是自带UI的,Strapi只关注Api数据,当然Strapi也能够做到配合nuxt.js反对UI界面
装置Strapi
npx create-strapi-app@latest my-project
依据提醒装置即可,如果抉择的数据库是MySQL
,请记住它需大于5.7,默认的数据库是SQLite
,Node
最好大于20,因为Strapi正在降级下一代v5,目前你所装置的v4,到时候能够平滑降级
MySQL
抉择MySQL,会提醒你输出数据库名、明码、端口、地址,最初零碎会写入在这个环境变量文件中
装置实现后,须要启动 Strapi 利用,请在我的项目文件夹中运行以下命令
npm run develop
看到以下阐明启动胜利,在浏览器中关上http://localhost:1337/admin
后盾治理
因为我曾经注册了,所以是登录界面,你们如果是第一次应用的会提醒你注册用户,输出用户名、邮箱、明码即可,都是在你本地的数据库中
建设数据模型
这边我已建设了几个数据库模型,建设模型很简略
为表中新减少字段
而后能够到内容治理界面下,去新增或者治理数据
建设模型关联
通过这个模型治理,能够将两张表的数据连贯关联起来,我前面会做一个演示
如何查问数据
Strapi查问数据很简略,他的格调是REST API
,过滤条件参数,我猜想他的底层查询数据库应用的# Sequelize.js
,只是看到他的查问格调参数类型很像
能够看到是有关联的数据的,因为在起初的增加了关联字段
好了咱们讲了半天的界面操作,看看理论的代码如何
这是通过npx create-strapi-app@latest my-project
命令生成完后的代码构造
如何增加路由中间件和全局中间件
两头的作用处很大,所以如果你要用好这个框架,得学会利用好中间件,我这概述下如何应用
路由中间件-在同级目录下有个routes
目录,
module.exports = createCoreRouter('api::article.article', {
config: {
findOne: {
auth: false,
policies: [],
middlewares: ['api::article.analytics'], //看截图的文件名
},
},
});
module.exports = (config, {strapi}) => {
return async (context, next) => {
console.log('单个路由部分中间接')
await next();
};
};
全局中间件的增加地位在config/middlewares.js
中
module.exports = [
'strapi::logger',
'strapi::errors',
'strapi::security',
'strapi::cors',
'strapi::poweredBy',
'strapi::query',
'strapi::body',
'strapi::session',
'strapi::favicon',
'strapi::public',
'global::white' //看截图的文件名
];
module.exports = (config, {strapi}) => {
// Add your own logic here.
return async (ctx, next) => {
strapi.log.info('In white middleware.');
console.log('全局中间件')
await next();
};
};
如何自定义接口
咱们在路由文件下新建
而后在回到controllers
目录,写入以下内容
回到治理面板,须要把这个勾结上,不然无权限
咱们进行测试
因为strapi我也是第一次接触,正在摸索中,目前只写曾经够用了我工作中的须要,遇到问题,在去钻研看如何应用
中英文文档
https://strapi.nodejs.cn/中文
https://docs.strapi.io/dev-docs/quick-start英文
过滤条件的应用
最初在列举一些,罕用的查问条件
运算符 | 形容 | |
---|---|---|
$eq |
平等的 | |
$eqi |
等于(不辨别大小写) | |
$ne |
不等于 | |
$nei |
不等于(不辨别大小写) | |
$lt |
少于 | |
$lte |
小于或等于 | |
$gt |
比…更棒 | |
$gte |
大于或等于 | |
$in |
蕴含在数组中 | |
$notIn |
不蕴含在数组中 | |
$contains |
蕴含 | |
$notContains |
不含 | |
$containsi |
蕴含(不辨别大小写) | |
$notContainsi |
不蕴含(不辨别大小写) | |
$null |
一片空白 | |
$notNull |
不为空 | |
$between |
在。。。之间 | |
$startsWith |
以。。开始 | |
$startsWithi |
结尾为(不辨别大小写) | |
$endsWith |
以。。完结 | |
$endsWithi |
结尾为(不辨别大小写) | |
$or |
连贯 “or” 表达式中的过滤器 | |
$and |
连贯 “and” 表达式中的过滤器 | |
$not |
连贯 “not” 表达式中的过滤器 |
如果你不晓得如何应用,他这里有列子
发表回复