LinCms搭建后端学习

lin-cms-koa 使用学习

  1. 下载lin-cms 到本地目录 ,使用vs coed 编辑器打开 项目结构如下:在这里插入图片描述
    2.如何新建一个新的接口
在app/api/v1下面新建接口文件test.js
	import { LinRouter } from 'lin-mizar';   //引入lin  封装好的koa-router
    import { TestValidator } from '../../validator/test';  //导入的验证层
    const ContentApi = new LinRouter({
          prefix: '/v1/Content'      //安装的接口路径
    });
    ContentApi.post('/', async ctx => {
          const v = await new TestValidator().validate(ctx);
          return ctx.json(v.get('body'));   //返回给客户端的信息
});

  module.exports = { ContentApi };    //暴露接口

3.新建了接口 ,我们有必要对传递过来的数据进行校验 ,校验通过 返回正确的信息 ,校验时报返回给前端错误提示! 那么 如何新建一个验证层呢?

在app/validator下面新建一个同名的js文件  (为什么要同名呢 ? 主要是保证项目结构清晰!让别人易看懂)
   创建test.js       //创建一个类  继承validator  这个基类  ,(继承前别忘了引入lin封装好的validator这个类库哦) 
          import { LinValidator, Rule } from 'lin-mizar';
           // 继承  lin的 验证基类
             class Test extends LinValidator {
                 constructor () {    
                   super();   //初始化父类
                this.q = [new Rule('isNotEmpty', '搜索关键字不能为空'),
                new Rule('isInt', '搜索关键字必须是数字')];
                this.name = new Rule('isNotEmpty', '名称不能为空');
          }
      }
       export { Test as  TestValidator};
	//关于使用validator 验证器的时候  需要查看validator的使用介绍哦!  

4.现在 我们应该创建一个model 实体层了 ,model 层映射了数据库的实体类

在app/model下面新建 test.js 
		
			//继承了squelize的model  基类   
		   //  squelize  实例 在  、app/lib/db 目录下面
	      //squelize 主要对于 数据库操作  ,lin  集成了squelize   使用需要查看官方文档 
	      	import   {Model,Squelize}   from  'squelize'
	      	import   { merge}  from 'lodash'   //合并对象 属性    查看lodash.js
	      	import { sequelize } from '../lib/db';
            import { InfoCrudMixin } from 'lin-mizar';

		class   Test   extends  Model{
		}
		Test.init({
			id:{
				type: Sequelize.INTGER(40),    //标明这个字段的类型  和长度
				allowNull: fasle         //是否可为空
			}
		},merge( 
		     {
		     	sequelize,    //链接到指定的数据库哦!
		     	tableName:'test',    //表名
		     	modelName:'test'    // model名
				
             },
            InfoCrudMixin.options     //合并创建时间、 删除时间,更新时间
		))
		export  {Test   as  TestModel}   //导出模型

5.实体类有了 ,我们下一步 需要创建一个dao层 ,该层主要处理数据库的操作!

import { MusicModel } from '../model/music'; // 导入模型

class Music {
  static async addcontent (v) {
    return MusicModel.create(v);
  }
}

export { Music as MusicDao };

6.最后我们创建一个服务层 ,专心处理我们的业务!

在app目录下面创建一个service 目录新增 test.js   
		import { MovieDao } from '../dao/movie';
        import { MusicDao } from '../dao/music'; //导入dao层
         
	class   Test {
		//定义一个方法   //ctx  表示 接收的上下文 根据不同的内容做对应的处理  可以用一个switch  控制
	static async addcontent(ctx){  
				switch(ctx['type']){
					case 100:
                     //新增处理逻辑   此处只处理业务,不对数据库进行操作!
                     MovieDao.add(v)
                     break;
                    case 200:
                     delete  v['url']  //删除不必要的参数传递
                     MusicDao .add(v)
                     break;
                    default:
                    //默认处理逻辑   、没有找到的时候可以返回一个自定义异常
                   	throw  new  NotFound({msg:'type类型没有找到'})
                    
                    
				}     
		}
}

export   {Test  as   TestService}   //导出服务

现在我们回到api 里面调用一下我们自己的服务吧! >.<

    步骤二的代码
    import { LinRouter } from 'lin-mizar';   //引入lin  封装好的koa-router
    import { TestValidator } from '../../validator/test';  //导入的验证层
    import { contentService } from '../../service/content';   //导入我们的服务层
    const ContentApi = new LinRouter({
          prefix: '/v1/Content'      //安装的接口路径
    });
    ContentApi.post('/', async ctx => {
       const v = await new TestValidator().validate(ctx);
       await  contentService.addcontent(v.get('body')) //调用服务,返回一个permise await
       ctx.success({
			message:'新增成功'     //这里可以更改默认的返回信息
		})                   
});

  module.exports = { ContentApi };    //暴露接口

恭喜 !现在 使用postman 测试一下 你自己的接口吧~~
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架。 Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率。 Lin CMS 特点: Lin CMS 的构筑思想是有其自身特点的。下面我们阐述一些 Lin 的主要特点。 1、Lin CMS 是一个前后端分离的 CMS 解决方案 这意味着,Lin 既提供后台的支撑,也有一套对应的前端系统,当然双端分离的好处不仅仅在于此,我们会在后续提供NodeJS和PHP版本的 Lin。如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢? 首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 JinJa2、Jade 等。 服务端渲染的好处在于可以比较好的支持 SEO,但作为内部使用的 CMS 管理系统,SEO 并不重要。 但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 Vue 写 JS 和 CSS,而服务器只关注自己的 API 即可。 其次,单页面应用程序的体验本身就要好于传统网站。 2、框架本身已内置了 CMS 常用的功能 Lin 已经内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可。 3、Lin CMS 本身也是一套开发规范 Lin CMS 除了内置常见的功能外,还提供了一套开发规范与工具类。换句话说,开发者无需再纠结如何验证参数?如何操作数据库?如何做全局的异常处理?API 的结构如何?前端结构应该如何组织?这些问题 Lin CMS 已经给出了解决方案。当然,如果你不喜欢 Lin 给出的架构,那么自己去实现自己的 CMS 架构也是可以的。但通常情况下,你确实无需再做出架构上的改动,Lin 可以满足绝大多数中小型的 CMS 需求。 举例来说,每个 API 都需要校验客户端传递的参数。但校验的方法有很多种,不同的开发者会有不同的构筑方案。但 Lin 提供了一套验证机制,开发者无需再纠结如何校验参数,只需模仿 Lin 的校验方案去写自己的业务即可。 还是基于这样的一个原则:Lin CMS 只需要开发者关注自己的业务开发,它已经内置了很多机制帮助开发者快速开发自己的业务。 注意:该软件为前端框架,如需后端框架,请到官网中进行相应的下载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值