egg创建后端项目(二)

简介: 简单来说,就是把业务逻辑代码进一步细化和分类,所以和数据库交互的代码都放到Service中。这样作有三个明显的好处。

一、egg安全机制配置


在config/config.defalut.js里面设置


// CSRF防跨域关闭
config.security = {
    csrf: {
      enable: false,
    },
};


二、使用REST Client进行请求测试


在项目任意目录新建test.http文件,文件内容为


POST http://127.0.0.1:7001/test
Content-type: application/json
Authorization: token xxx
{
   "name": "sample",
   "time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
name=lisi


在/controller/test.js如何获取上面的发送请求参数


const Controller = require('egg').Controller;
class TestController extends Controller {
  async index() {
    const ctx = this.ctx;
    ctx.body = {
      status: 200,
      data: ctx.request.body--获取到传的值
    };
  }
}
module.exports = TestController;


注意


如果请求头是application/x-www-form-urlencoded 请求参数是name=lisi


那么ctx.request.body返回的就是


"name": "'lisi'"


如果请求参数是


{
   "name": "sample",
   "time": "Wed, 21 Oct 2015 18:27:50 GMT"
}


那么返回的就是


"{\r\n    "name": "sample",\r\n    "time": "Wed, 21 Oct 2015 18:27:50 GMT"\r\n}": ""


但是一般我们传参都是json形式的传参,所以服务器请求头是Content-type: application/json; charset=utf-8

那么返回的就是


{
    "name": "sample",
    "time": "Wed, 21 Oct 2015 18:27:50 GMT"
  }


三、Service服务的编写


官方对Service服务的说明


Service就是在复杂业务场景下用于做业务逻辑封装的一个抽象层。


简单来说,就是把业务逻辑代码进一步细化和分类,所以和数据库交互的代码都放到Service中。这样作有三个明显的好处。


  • 保持Controller中的逻辑更加简介。


  • 保持业务逻辑的独立性,抽象出来的Service可以被多个Controller调用。


  • 将逻辑和展现分离,更容易编写测试用例。


个人建议只要是和数据库的交互操作,都写在Service里,用了Egg框架,就要遵守它的约定。

相关文章
|
1月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
24天前
|
存储 运维 小程序
后端开发零负担!揭秘支付宝小程序云开发的高效与安全,你的项目也能飞速上线?
【8月更文挑战第27天】支付宝小程序云开发是由阿里云提供的集成开发环境,助力开发者高效、安全地构建小程序后端服务,免去服务器搭建,显著提高开发效率并降低运维成本。它集成了云函数、云数据库及云存储等功能,便于快速搭建后端逻辑。例如,仅需简单几行代码即可创建HTTP接口或进行数据管理。这使得开发者能更专注于业务逻辑和用户体验优化,同时平台还提供了强大的安全保障措施,确保数据安全和用户隐私。无论对于初创团队还是成熟企业,支付宝小程序云开发都能有效提升产品迭代速度和市场竞争力。
47 1
|
1月前
|
JSON 缓存 监控
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
Viper 是一个强大的 Go 语言配置管理库,适用于各类应用,包括 Twelve-Factor Apps。相比仅支持 `.ini` 格式的 `go-ini`,Viper 支持更多配置格式如 JSON、TOML、YAML
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
|
25天前
|
JSON API 数据安全/隐私保护
Django 后端架构开发:JWT 项目实践与Drf版本控制
Django 后端架构开发:JWT 项目实践与Drf版本控制
32 0
|
1月前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
3月前
|
存储 NoSQL Java
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
大事件后端项目34_登录优化----redis_SpringBoot集成redis
|
2月前
|
前端开发 JavaScript Go
|
2月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
3月前
|
Java Linux 程序员
大事件后端项目36--------SpringBoot项目部署
大事件后端项目36--------SpringBoot项目部署
|
3月前
|
存储 Java Maven
大事件后端项目31--------文件上传_阿里云OSS_入门程序
大事件后端项目31--------文件上传_阿里云OSS_入门程序

热门文章

最新文章